一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Java

Dubbo与DubboX区别

 前世今生: Dubbo源于阿里的淘宝网开源的分布式的服务架构,致力于提供高性能和透明化的RPC远程服务调用方案,是SOA服务化治理方案的核心框架。淘宝网将其开源之后,得到了很多的拓展和支持(比较出名的有:当当网的扩展版本dubbox,京东的扩展版本jd-hydra等)        Dubbox(即Dubbo eXtensions)是当当网Fork基于dubbo2.x的升级版本,兼容原有的dubbox。其中升级了zookeeper和spring版本,并且支持restfull风格的远程调用。。 版本: Dubbo目前已停止更新;        Dubbox目前还在更新。 说明:dubbox和dubbo 2.x是兼容的, 没有改变dubbo的任何已有的功能和配置方式(除了升级了Spring之类的版本)。   据说淘宝网dubbo与一个非开源的框架HSF有争执,导致dubbo的团队已经解散了,但是其扩展的版本dubbox却得到不断的发展(升级更新); <!——--升级详情——--|——————-- dubbox-2.8.0:该版本已经在生产环境中使用,主要支持REST风格远程调用、支持Kryo和FST序列化、升级了Spring和Zookeeper客户端、调整了demo应用等等 dubbox-2.8.1:主要支持基于嵌入式tomcat的http-remoting,优化了REST客户端性能,在REST中支持限制服务端接纳的最大HTTP连接数等等 dubbox-2.8.2: 支持REST中的HTTP logging,包括HTTP header的字段和HTTP body中的消息体,方便调试、日志纪录等等 提供辅助类便于REST的中文处理 改变使用@Reference annotation配置时的异常处理方式,即当用annotation配置时,过去dubbo在启动期间不抛出依赖服务找不到的异常,而是在具体调用时抛出NPE,这与用XML配置时的行为不一致。 较大的充实了Dubbo REST的文档 dubbox-2.8.3: 在REST中支持dubbo统一的方式用bean validation annotation作参数校验(沈理) 在RpcContext上支持获取底层协议的Request/Response(沈理) 支持采用Spring的Java Config方式配置dubbo(马金凯) 在Dubbo协议中支持基于Jackson的json序列化(Dylan) 在Spring AOP代理过的对象上支持dubbo annotation配置(Dylan) 修正Dubbo管理界面中没有consumer时出现空指针异常(马金凯) 修正@Reference annotation中protocol设置不起作用的bug(沈理) 修正@Reference annotation放在setter方法上即会出错的bug(Dylan) 详见:https://github.com/dangdangdotcom/dubbox/releases ———/> 嵌入: dubbo:嵌入式Jetty dubbox:基于嵌入式tomcat实现dubbo的 HTTP remoting体系(即dubbo-remoting-http) 对Servlet API的支持: dubbo:2.5 dubbox:升级到3.1 序列化: dubbo: dubbox:基于Dubbo默认的RPC协议添加新的JSON序列化实现; 支持基于Kryo和FST的Java高效序列化实现; Zookeeper注册中心: dubbo:Dubbo提供了Zookeeper注册中心,在整个Dubbo的设计里面充分考虑到了各类用户的需求,一些底层的通讯或者是信息存储都提供有大量的不同的存储方案; dubbox:升级ZooKeeper客户端到最新版本; 使用场景: dubbo:使用Dubbo的RPC调用方式,服务间仍然会存在API强依赖; dubbox:相对于Dubbo支持了REST风格的原创调用(HTTP +JSON/XML); ——————————————————- ——简言之(dubbox基于dubbo的升级): ——————- 支持REST风格远程调用(HTTP + JSON/XML); 支持基于Kryo和FST的Java高效序列化实现; 支持基于Jackson的JSON序列化; 支持基于嵌入式Tomcat的HTTP remoting体系; 升级Spring至3.x; 升级ZooKeeper客户端; 支持完全基于Java代码的Dubbo配置; ————————————————- 附录: Dubbo: 官网首页:http://dubbo.io/ , 官方用户指南: http://dubbo.io/User+Guide-zh.htm可以当做SOA架构的学习资料 Dubbox: dubbox入门:http://www.cnblogs.com/yjmyzz/p/dubbox-demo.html dubbox架构: http://www.cnblogs.com/Javame/p/3632473.html  当当网dubbox学习参考文档:http://dangdangdotcom.github.io/dubbox/ 分布式服务框架 dubbo/dubbox 入门示例:http://www.cnblogs.com/wanghang/p/6298957.html  ———————- […]

龙生   11 Oct 2019
View Details

Spring Boot 容器选择 Undertow 而不是 Tomcat

Spring Boot 内嵌容器Undertow参数设置 配置项:

来看看源代码: https://github.com/undertow-io/undertow/blob/master/core/src/main/java/io/undertow/Undertow.java

很显然,Undertow认为它的运用场景是在IO密集型的系统应用中,并且认为多核机器是一个比较容易满足的点,Undertow初始化假想应用的阻塞系数在0.8~0.9之间,所以阻塞线程数直接乘了个8,当然,如果对应用较精确的估测阻塞系数,可以配置上去。   Spring Boot内嵌容器支持Tomcat、Jetty、Undertow。为什么选择Undertow? 这里有一篇文章,时间 2017年1月26日发布的: Tomcat vs. Jetty vs. Undertow: Comparison of Spring Boot Embedded Servlet Containers 1. Setup Spring Boot Application We will use Maven to setup a new project in Eclipse with the appropriate dependencies. We will use the starter parent for this example but the dependencies in a production application will likely be altered to streamline, optimize or customize. 1.1 Setup Spring Boot Dependencies The default embedded servlet container is Tomcat. This version of Spring Web […]

龙生   24 Sep 2019
View Details

Spring Boot :Undertow

Undertow Undertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器 Untertow 的特点: 轻量级:它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心 Jar 包组成,加载一个 Web 应用可以小于 10MB 内存 Servlet3.1 支持:它提供了对 Servlet3.1 的支持 WebSocket 支持:对 Web Socket 完全支持,用以满足 Web 应用巨大数量的客户端 嵌套性:它不需要容器,只需通过 API 即可快速搭建 Web 服务器 默认情况下 Spring Cloud 使用 Tomcat 作为内嵌 Servlet 容器,可启动一个 Tomcat 的 Spring Boot 程序与一个 Undertow 的 Spring Boot 程序,通过 VisualVM 工具进行比较,可看到 Undertow 性能优于 Tomcat 使用 Undertow 添加依赖

  支持 HTTP2

  配置 Undertow

  from:https://www.jianshu.com/p/e625b8aa0e80

龙生   24 Sep 2019
View Details

flyray项目介绍

flyray项目介绍 使用Spring+SpringMVC+Mybatis+dubbox 开发的一套分布式基础框架,提供支付、对账、清结算、客户管理、营销活动、库存管理、搜索模块、rocketmq做统一的消息队列中心 飞雷开源平台 cms前端工程 开发手册 开发部署文档 接口文档文档 各模块功能文档 有兴趣、想学习部署的可以加群交流  使用技术 后台 Maven构建项目 Jenkins作为持续集成 安全框架:Apache Shiro 1.3 构上采用Dubbox作为RPC框架 使用Spring+Spring MVC+MyBatisSSM框架 数据库连接池使用druid 数据库使用MySQL和Redis 采用elasticsearch实现搜索服务 采用quartz做任务调度 注册中心ZooKeeper 消息中间件RocketMQ, 在分布式事务上则采用了TCC解决订单支付方面时效性要求性高的分布式事务,可靠的消息服务则来解决如会计记录等时效性要求低的分布式事务. 前台 页面交互Vue2.x 数据可视化echarts 项目进度 组织结构 接口总线系统 对外暴露统一规范的接口,包括各个子系统的交互接口示例图:  运营中心 商户中心 开放平台 ##运行流程 ##flyray-base 项目搭建 系统环境:windows10 jdk8 eclipse tomcat8 ##搭建步骤 安装jdk1.8 安装maven 安装zookeeper 下载项目:git clone https://git.oschina.net/boleixiongdi/flyray.git eclipse导入maven项目 在群里下载缺少的dubbox包和zkclient包 解决缺少其他jar包问题,直到项目不报错 ##导入后项目结构  ##项目架构图  ##项目启动步骤 导入数据库脚本 flyray-os-各模块总的数据库.sql flyray-security-三个中心的数据库.sql 修改config工程中的resource下的dubbo、数据库配置文件 修改 flyray-rbac 下的flyray-merchant-web、flyray-open-web、flyray-operation-web中的resource\service-consumer.xml文件的dubbo IP 启动注册中心即zookeeper 启动所有的服务提供者cms、crm、pay、erp下的web工程 启动rest,rest既是cms、crm、pay、erp的服务消费者又是merchant-web、open-web、operation-web的服务提供者 最后启动merchant-web可以登录商户中心、启动operation-web可以登录运营中心、启动open-web可以看到开放平台 from:https://gitee.com/boleixiongdi/flyray

龙生   24 Sep 2019
View Details

Zookeeper 3.5启动时 8080端口被占用

今天闲来无事,学习Zookeeper,下载了Zookeeper的最新版本3.5。启动以后显示: 1 2 3 ZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.5.4-beta/bin/../conf/zoo.cfg Starting zookeeper … STARTED 以为启动成功,然后连接时报错,查看后台进程,没有Zookeeper进程。 查看zookeeper的日志文件: 1 2 2018-06-29 01:36:01,142 [myid:] – ERROR [main:ZooKeeperServerMain@79] – Unable to start AdminServer, exiting abnormally org.apache.zookeeper.server.admin.AdminServer$AdminServerException: Problem starting AdminServer on address 0.0.0.0, port 8080 and command URL /commands 发现8080端口被占用,通过查阅Zookeeper3.5的官方文档,发现这是Zookeeper3.5的新特性: 这是Zookeeper AdminServer,默认使用8080端口,它的配置属性如下:   我们可以修改在zoo.cfg中修改AdminServer的端口: 1 admin.serverPort=8888 保存后,再次启动,Zookeeper启动成功。   from:https://www.cnblogs.com/boboooo/p/9242088.html

龙生   24 Sep 2019
View Details

windows安装zookeeper说明

zookeeper安装教程(zookeeper3.4.8为例) zookeeper有单机、伪集群、集群三种部署方式,可根据自己对可靠性的需求选择合适的部署方式。下边是单机部署的介绍。 一、单机安装 1.1 下载 进入要下载的版本的目录,选择.tar.gz文件下载,具体需要哪个版本,这个由你自己选择 下载链接:http://archive.apache.org/dist/zookeeper/ 1.2 配置,下载解压得到如下图所示: 点击conf,把zoo_sample.cfg修改成zoo.cfg,必须是叫这个名称。然后对其进行修改。 用文本打开zoo.cfg具体修改如下: 1.3,启动zooker服务。启动命令在bin文件下的zkServer.cmd. 当看到这个2181就表示启动成功了。 对于zookeeper集群,其实也就是修改conf/zoo.cfg的dataDir的存放位置以及相应在端口号,如第一个端口号:2181,第二个3181,…依次类推。这里不做详细介绍。 检查是否安装成功方式二:运行cmd,在命令行中输入jps如下图所示,表示zookeeper安装启动成功了。 到此,单机的zookeeper布置就结束。 那么,就可以搭建dubbo了。记得在搭建前先把zookeeper启动!!!   from:https://blog.csdn.net/qq_30764991/article/details/80188652

龙生   24 Sep 2019
View Details

maven依赖的项目报错Could not resolve dependencies for project XXXXXX

maven依赖的项目报错Could not resolve dependencies for project问题 maven如果依赖本地项目 1.例如自己本地项目是模块化的 首先将报错的模块执行 clean 和package 2. 然后执行install,将上一步执行成功的jar文件安装到responsitory 3.最后执行 mvn clean install -Dmaven.test.skip=true from:https://blog.csdn.net/zgy_boke/article/details/85243453

龙生   21 Sep 2019
View Details

Maven报错:Non-resolvable parent POM: Failure to find

http://www.bubuko.com/infodetail-2130667.html 使用maven创建子工程时,子工程需要依赖父工程,创建以后报错Project build error: Non-resolvable parent POM: Failure to find…… 网上的答案绝大多数都是在<parent></parent>中间加一行:<relativePath>../../pom.xml</relativePath>(原因是找不到路径) 但是我加了依旧没有解决,我的解决方法是,在子项目名点击右键--> run as -->maven install。待自动下载完包后就便可以解决错误   from:https://blog.csdn.net/baidu_18607183/article/details/80479925

龙生   21 Sep 2019
View Details

手把手教你在 windows 系统上安装或卸载 Tomcat 服务

1 准备 下载 tomcat 首先在 tomcat 官网上下载 windows 版本的 tomcat 包。因为只有 windows 版本中才有用于安装或卸载 Tomcat 服务的 service.bat。 解压为文件夹,假设 tomcat 的解压路径为 ${TOMCAT_HOME} 通过命令行,进入 ${TOMCAT_HOME}/bin 2 安装 Tomcat 服务 输入命令:

  这里我们可以把启动类型改为 “自动”,这样如果服务器重启,就会自动启动服务啦。 快速进入 “服务” 列表的方法:win+R 打开运行窗口,然后输入 services.msc 建议把服务的名称加上端口号,这样方便管理哦O(∩_∩)O~ 如果启动服务时报错,查看 tomcat 日志发现是 “不是有效的 Win32 应用程序” 引起的。这可能是操作系统的问题(比如 windows server 2007),这时只需下载一个 32 位的 windows 版的 tomcat 包即可解决。 3 卸载 Tomcat 服务 输入命令:

  是不是很简单呀O(∩_∩)O哈哈~   from:https://blog.csdn.net/deniro_li/article/details/79093390

龙生   08 Aug 2019
View Details

整理一些学习Spring Boot/Spring Cloud资料

Spring Boot 系列文章:http://www.ityouknow.com/spring-boot.html Spring Cloud 系列文章:http://www.ityouknow.com/spring-cloud.html Spring Cloud 从入门到精通:https://blog.csdn.net/valada/article/details/80892573

龙生   15 Jul 2019
View Details
1 … 46 47 48 … 68