dubbo和eureka的区别
发布时间:2025-05-20 15:15:49 发布人:远客网络
一、dubbo和eureka的区别
1.初始定位不同:Spring Cloud旨在为微服务架构提供一站式解决方案,而 Dubbo最初是为服务治理设计的 SOA框架。
2.生态环境差异:Spring Cloud与 Spring平台紧密结合,拥有成熟的生态系统;Dubbo最初专注于 RPC调用,生态相对较弱,但随着时间发展逐渐增强。
3.调用方式不同:Spring Cloud使用 HTTP协议进行远程调用,采用 REST风格的接口,灵活性高;Dubbo使用 Dubbo协议,接口通常是 Java的服务接口,格式固定,但采用 Netty的 NIO传输,性能较好。
4.组件差异:例如,Spring Cloud常用 Eureka作为注册中心,而 Dubbo使用 ZooKeeper;Spring Cloud框架功能全面,类似品牌机,Dubbo更灵活,可定制性强,类似组装机。
5. Spring Cloud:由 Spring公司开源的微服务框架,提供一站式微服务架构解决方案。
6. Dubbo:阿里巴巴开源的 RPC框架,起源于 SOA时代,专注于服务调用、流量分发、监控和断路。
1. Spring Cloud在功能上明显强于 Dubbo,覆盖面广,且与 Spring家族其他项目如 Spring Framework、Spring Boot等完美融合,对微服务至关重要。
2.使用 Dubbo构建的微服务架构如同组装电脑,组件选择自由度高,但可能因为某一环节质量问题而功亏一篑,让人不够放心。
3. Spring Cloud如同品牌机,在 Spring Source的整合下,经过大量兼容性测试,保证了稳定性,但如果需要使用非原装组件,就需要深入了解其基础原理。
二、Java学习路线
根据个人实际的经历,结合多种书籍,特别整理出了下面的java学习路线:
1、java基础:基础语法;面向对象(重点);集合框架(重点);常见类库API;
2、java界面编程:AWT;事件机制;Swing;
3、java高级知识:Annotation;IO和NIO、AIO;多线程、线程池;阻塞、非阻塞、异步网络通信;反射、动态代理;
4、SQL基础:基础SQL语句;基本查询;多表查询;子查询;结果集的交、并、差运算;
5、JDBC基础:常见数据库用法;JDBC操作常见数据库;RowSet与离线结果集;数据库连接池;事务管理、批处理;
6、JDBC进阶:存储过程、函数;触发器;理解JCBC的不足;掌握ORM工具优势和设计;
7、HTML基础:基本HTML标签;常见表单标签;DIV+CSS布局;
8、JavaScript知识:javascript基本语法;javascript基本对象特征;Json语法;深刻理解javascript的动态特征;
9、Dom和事件机制:DOM操作、编程;常见浏览器事件机制;掌握用户交互技巧;
10、XML基础:XML基础规则;DTD和SCheme;XML和样式单;
11、XML进阶:DOM、SAX和JAXP;dom4j、JDOM等工具;XQuery和XQJ;基于XML的数据交换;
12、Web Service:JAX_WS2、SAAJ规范;WSDL和SOAP协议;CXF框架、拦截器;CXF整合Spring;
13、Web编程基础:Tomcat服务器;Jsp语法、EL、内置对象;Servlet API;Servlet 3.0注解;Listener和Filter;
14、Web编程进阶:自定义标签库;MVC和DAO、Servlet、标签的作用;JSTL、DisplayTag等常见标签库用法;
15、Web编程原理:请求/响应、架构;Http协议;深刻理解Jsp运行原理;掌握Web容器底层的线程池、socket通信、调用Servlet的命令模式;
16、Ajax编程:XML HttpRequest和异步请求;发送请求和处理响应;常见Ajax库(Prototype、Jquery、ExtJs、DWR)用法;结合Http协议、异步请求深入研究ajax库的设计;
17、Android基础:Android开发调试环境;Android应用结构;界面组件与界面编程;资源管理;四大组件;
18、Android中级:文件IO和SQLite;图形、图像与动画;音频、视频的录制与播放;传感器编程;GPS应用;
19、Android高级:网络编程与Web Service;OpenGL_ES 3D开发;整合Google服务;使用NDK开发;java和c相互调试;
17、Struts2:MVC与struts体系;Action和Result;国际化和标签库;文件上传、下载;类型转换和输入检验;拦截器与插件开发;
18、Hibernate:ORM与持久化映射;关系映射、继承映射;延迟加载、性能调优;HQL查询、条件查询、SQL查询;二级缓存和查询缓存;
19、Spring:IoC与Bean配置、管理;Bean生命周期;SP、EL;AOP与事务权限控制;S2SH整合开发;Spring整合Jpa;
20、JSF<选学>:MVC与JSF设计理念;托管Bean与导航模型;JSF流程与事件机制;JSF标签库;类型转换与输入检验;
21、EJB及相关技术:JNPI与RMI;会话Bean及其生命周期;IoC与EJB拦截器;JMS与MDB;会话Bean与Web Service;
22、JPA:ORM框架与JPA规范;JPA注解与常用API;JTA事务与事务管理;JPQL查询;EJB、JPA整合;
23、Java EE实践与架构:Ant+Ivy或Maven;SVN、CVS;深刻理解10种以上设计模式;掌握各种Java EE架构及各自优势;
24、Workflow:Workflow规范及功能;JBPM等workflow框架;多次重构、反复思考;大型项目经验;
25、Java EE进阶:掌握各MVC框架运行原理、能开发类似框架;掌握Spring、HiveMind、AspectJ等框架原理、能开发类似工具;掌握Hibernate、iBatis等框架原理,能开发类似工具;深入研究EJB机制、大致了解应用服务器的实现;
三、java中如何构造ADT 数字货币
1、无论是股票交易系统,还是数字货币交易系统,都离不开撮合交易引擎,这是交易平台的心脏。同时,一个优秀的架构设计也会让交易平台的运维和持续开发更加容易。本文基于对开源项目的深入研究,总结了数字货币交易系统的架构设计。
2、撮合技术主要是从数据库撮合技术向内存撮合技术发展,这是因为数据库撮合技术越来越无法满足金融交易对于高可靠性、高性能、强安全性、可扩展性以及易维护性的需求。金融(币币)交易撮合系统中包括以下几个核心模块:
3、用户:终端用户委托报价与数量,生成订单发送至交易平台。
4、网关:负责收集用户订单,并将其派发给撮合引擎。
5、撮合引擎:交易系统中的核心部分,用于接收订单并根据业务逻辑实现订单撮合同时生成交易记录,随后给予用户交易结果反馈。
6、数据库:用来存放交易过程中的订单和交易记录,实现数据持久化。
7、消息队列:一般用于订单消息的传输
8、一个交易所平台的技术架构主要考虑安全性、分布式、易扩展、容错性、低延时、高并发等特性,以及熔断机制、服务注册和发现、消息服务、服务网关、安全认证、内存数据库、关系型数据库等各种选项,最终形成了如下技术选型:
9、分布式基础进行架构SpringCloud与Dubbo之间二选一,由于SpringCloud更加知名,SpringCloud的程序员更好招聘,有利于系统的长期运维升级,而且SpringCloud是基于SpringBoot开发,比较有亲切感,所以选择了SpringCloud,其实由于阿里系的强大影响,国内Dubbo使用更加广泛,不同的团队可以根据自己的情况选择。
10、引入Hystrix断路器作为容错保护模块,防止单个服务的故障,耗尽整个撮合系统容器的线程资源,避免分布式环境里大量级联失败。对通过第三方客户端访问依赖服务出现失败、拒绝、超时或短路时执行回退逻辑。
11、采用Eureka作为服务注册与发现中心,实现中间层服务,以达到负载均衡和中间层服务故障转移的目的。
12、服务网关Spring Cloud Gateway与 Zuul的选型,选择了Zuul,因为名字短一些。
13、引入SpringCloud Security安全认证模块用于构建安全的应用程序和服务,SpringCloud Security在Spring Boot和Spring Security OAuth2的基础上,可以快速创建和实现常见的安全认证方式,如单点登录,令牌中继和令牌交换等。
14、引入Redis作为内存数据库,兼做系统数据缓存和内存计算。
15、使用MySQL作为关系数据库,性能测试非常过关,而且对熟悉MYSQL的程序员非常友好。
16、消息队列中间件MQ采用了Kafka,具有超高性能体现。