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

Category Archives: Java

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

springcloud(一):大话Spring Cloud

研究了一段时间Spring Boot了准备向Spring Cloud进发,公司架构和项目也全面拥抱了Spring Cloud。在使用了一段时间后发现Spring Cloud从技术架构上降低了对大型系统构建的要求,使我们以非常低的成本(技术或者硬件)搭建一套高效、分布式、容错的平台,但Spring Cloud也不是没有缺点,小型独立的项目不适合使用。 Spring Cloud是什么鬼? Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。 微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,springcloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,springcloud做为大管家需要管理好这些微服务,自然需要很多小弟来帮忙。 主要的小弟有:Spring Cloud Config、Spring Cloud Netflix(Eureka、Hystrix、Zuul、Archaius…)、Spring Cloud Bus、Spring Cloud for Cloud Foundry、Spring Cloud Cluster、Spring Cloud Consul、Spring Cloud Security、Spring Cloud Sleuth、Spring Cloud Data Flow、Spring Cloud Stream、Spring Cloud Task、Spring Cloud Zookeeper、Spring Cloud Connectors、Spring Cloud Starters、Spring Cloud CLI,每个小弟身怀独门绝技武功高强下面来做一一介绍。 核心成员 Spring Cloud Netflix 这可是个大boss,地位仅次于老大,老大各项服务依赖与它,与各种Netflix OSS组件集成,组成微服务的核心,它的小弟主要有Eureka, Hystrix, Zuul, Archaius… 太多了 Netflix Eureka 服务中心,云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。这个可是springcloud最牛鼻的小弟,服务中心,任何小弟需要其它小弟支持什么都需要从这里来拿,同样的你有什么独门武功的都赶紧过报道,方便以后其它小弟来调用;它的好处是你不需要直接找各种什么小弟支持,只需要到服务中心来领取,也不需要知道提供支持的其它小弟在哪里,还是几个小弟来支持的,反正拿来用就行,服务中心来保证稳定性和质量。 Netflix Hystrix 熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。比如突然某个小弟生病了,但是你还需要它的支持,然后调用之后它半天没有响应,你却不知道,一直在等等这个响应;有可能别的小弟也正在调用你的武功绝技,那么当请求多之后,就会发生严重的阻塞影响老大的整体计划。这个时候Hystrix就派上用场了,当Hystrix发现某个小弟不在状态不稳定立马马上让它下线,让其它小弟来顶上来,或者给你说不用等了这个小弟今天肯定不行,该干嘛赶紧干嘛去别在这排队了。 Netflix Zuul Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。当其它门派来找大哥办事的时候一定要先经过zuul,看下有没有带刀子什么的给拦截回去,或者是需要找那个小弟的直接给带过去。 Netflix Archaius 配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。可以实现动态获取配置, 原理是每隔60s(默认,可配置)从配置源读取一次内容,这样修改了配置文件后不需要重启服务就可以使修改后的内容生效,前提使用archaius的API来读取。 Spring Cloud Config 俗称的配置中心,配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。就是以后大家武器、枪火什么的东西都集中放到一起,别随便自己带,方便以后统一管理、升级装备。 Spring Cloud Bus 事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud […]

龙生   15 Jul 2019
View Details
1 39 40 41 63