`
cywhoyi
  • 浏览: 421512 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

基于Netty4网站架构

阅读更多

前言:

       本人所在公司在业内比较知名的公司,但是其电商平台真的不敢恭维,都称不上架构,跟传统的软件公司差不多springMVC+Mybatis+redis挂载在nginx+tomcat下,不能说它有问题,就是在高并发、低IO消耗,且移动端使用频繁场景情况下,觉得需要进行改造,所以采用如下的方式:


 

 



 

说明:

网关层:我们有部分是放在阿里云平台上,那么在运维层面其实能够需要的地方甚少,那为了安全和分流,我们在nginx上写了基于netty4的网关层,通过URL手段来分流到各个业务的机器。

 

应用层:基于netty的应用服务器,挂载了product、order、search等业务功能

 

数据路由层:根据配置,无缝连接数据路由
 

以上都是由团队成员一同完成工作,彻底地解放tomcat等局限性,性能提高不少。

 

因为以上部分并未开源出去,但是实际上能够基于netty完成的东西还是很多的,但是在业务功能完成层面跟一般都一样springMVC+Mybaits来完成。

 

应用服务层:Dubbo,有考虑向通过netty4+protobuf来完成,只是dubbo配置较为简单

 

这里推荐下已经开源了的vert-x3的开源框架,对于已经在使用JDK1.8的公司,推荐vert-x3,因为本人所在公司还在1.6-1.7,但是里面很多组件被采纳如:RXJava、EventBus等

 

最终结论:

大家觉得这套方案还有其它可以提高的地方吗?请及时提供意见,毕竟新架构还在磨合中,有待完善,但是个人感觉netty4真的用处很大。

  • 大小: 57.3 KB
  • 大小: 6.2 KB
6
4
分享到:
评论
12 楼 cywhoyi 2015-11-03  
james_lover 写道
你确定要用netty实现web服务?
确定要降低80%的web开发效率换10%的性能提升?

这是个很大问题,确实我们招人碰到很大问题,但是经过我们几个架构师的探讨,最终封装下,平常做业务开发的工程师,还是按照springMVC+MYbats这一套方式来
11 楼 james_lover 2015-11-03  
你确定要用netty实现web服务?
确定要降低80%的web开发效率换10%的性能提升?
10 楼 cywhoyi 2015-10-29  
yaoxianhuang 写道
能具体说说netty比tomcat优越的地方否?因为从我实际压测的结果来看,netty对比tomcat并没有什么优势

好的,我这周写一篇blog,看看能否对比下,仅仅回复你下,说服力不够
9 楼 yaoxianhuang 2015-10-29  
能具体说说netty比tomcat优越的地方否?因为从我实际压测的结果来看,netty对比tomcat并没有什么优势
8 楼 cywhoyi 2015-10-28  
winworm 写道
Dubbo只是一个构建SOA的工具,楼主主要是将tomcat应用服务器群换成netty服务群自己解析http请求处理业务员 ,这样就能保证netty服务集群能比tomcat resin 等应用服务器更稳定,性能更好?

springMVC+Mybatis+redis挂载在nginx+tomcat下确实中规中矩,能说说此架构下系统遇到性能瓶颈吗? tomcat 和一些其它的应用服务器也是支持NIO的噢,netty 主要也是基于nio的吧~

1.兄弟说的对的,我的意思也是差不多这个意思,单单netty来处理http就已经比tomcat快很多,再加上eventbus以及rxjava等组件后,效果非常明显
2.碰到当我们的总裁开完新品发布会的时候,我们的机器总是碰到瓶颈
7 楼 winworm 2015-10-28  
Dubbo只是一个构建SOA的工具,楼主主要是将tomcat应用服务器群换成netty服务群自己解析http请求处理业务员 ,这样就能保证netty服务集群能比tomcat resin 等应用服务器更稳定,性能更好?

springMVC+Mybatis+redis挂载在nginx+tomcat下确实中规中矩,能说说此架构下系统遇到性能瓶颈吗? tomcat 和一些其它的应用服务器也是支持NIO的噢,netty 主要也是基于nio的吧~
6 楼 cywhoyi 2015-10-28  
bitray 写道
cywhoyi 写道
bitray 写道
用来复写网关层的目标是什么?

现阶段的用处:
1.增加URL匹配规则,进行应用服务器的跳转
2.增加心跳检测,保证不宕机
3.增加过滤处理
其它的就没了,可能后续还会加一些东西吧,但是现阶段用处就三个特性,当然主要netty比较容易做相较于nginx


是为了网速考虑的?还是为了分布式,高可用考虑的啊?
去掉了应用服务器,以后的业务逻辑怎么处理呢?部署在云上?

1.安全
2.性能
3.netty里面只要能够解析HTTP协议,就能完成业务逻辑
5 楼 bitray 2015-10-28  
cywhoyi 写道
bitray 写道
用来复写网关层的目标是什么?

现阶段的用处:
1.增加URL匹配规则,进行应用服务器的跳转
2.增加心跳检测,保证不宕机
3.增加过滤处理
其它的就没了,可能后续还会加一些东西吧,但是现阶段用处就三个特性,当然主要netty比较容易做相较于nginx


是为了网速考虑的?还是为了分布式,高可用考虑的啊?
去掉了应用服务器,以后的业务逻辑怎么处理呢?部署在云上?
4 楼 cywhoyi 2015-10-28  
DataWei 写道
nginx 也去掉了吗?

没去掉nginx,去掉了tomcat、jetty等常规的容器
3 楼 DataWei 2015-10-28  
nginx 也去掉了吗?
2 楼 cywhoyi 2015-10-28  
bitray 写道
用来复写网关层的目标是什么?

现阶段的用处:
1.增加URL匹配规则,进行应用服务器的跳转
2.增加心跳检测,保证不宕机
3.增加过滤处理
其它的就没了,可能后续还会加一些东西吧,但是现阶段用处就三个特性,当然主要netty比较容易做相较于nginx
1 楼 bitray 2015-10-28  
用来复写网关层的目标是什么?

相关推荐

    基于Netty的RPC架构实战演练视频教程

    基于Netty的RPC架构实战演练 让你深入java的服务器开发

    基于netty编写的socket服务端

    在基于Netty编写的socket服务端中,首先需要定义一个`ChannelHandler`,这个处理器负责处理接收到的网络事件,如连接建立、数据读取、连接关闭等。`ChannelHandlerContext`则是`ChannelHandler`和`ChannelPipeline`...

    基于netty实现的web框架

    【标题】:“基于Netty实现的Web框架” 在IT领域,构建高性能、高并发的网络应用是关键。Netty作为一个强大的异步事件驱动的网络应用框架,为Java开发者提供了高效且灵活的基础,使得构建Web框架变得更为便捷。本...

    基于netty的物联网高并发网关.zip

    基于Netty构建的物联网高并发网关利用了Netty框架的强大功能,实现了高性能、低延迟的网络应用。下面将详细介绍Netty框架以及如何用其构建物联网高并发网关。 Netty是一个异步事件驱动的网络应用框架,适用于快速...

    Java基于Netty的websocket微服务架构即时聊天即时通信APP源码,仿微信APP

    Java基于Netty的websocket微服务架构即时聊天即时通信APP源码,仿微信APP前端使用Vue3 + TypeScript,后端采用SpringCloud + SpringBoot + Spring Data JPA 。基于 Netty 使用 WebSocket 实现了正常的C/S通信模块。...

    基于Java开发的一款基于Netty的内网穿透工具,主要用于将内网服务反向代理到公网访问.zip

    标题中的“基于Java开发的一款基于Netty的内网穿透工具”揭示了我们正在讨论的是一个使用Java编程语言,并且依赖于Netty框架的软件应用。Netty是一个高性能、异步事件驱动的网络应用程序框架,常用于开发服务器和...

    JAVA版基于netty的物联网高并发智能网关.zip

    "JAVA版基于netty的物联网高并发智能网关"项目正致力于解决这一问题,通过利用Java语言和Netty框架构建一个高性能、可扩展的网络通信系统。Netty是一个异步事件驱动的网络应用框架,适用于开发高效的服务器和客户端...

    netty5.0架构剖析和源码解读

    Netty中的NIO实现主要基于java.nio包,NIO服务端和客户端的创建与传统IO模型有很大的不同。NIO服务端会监听端口,接受新的连接,并处理数据的读写操作。NIO客户端通过Bootstrap类初始化,并通过它发起连接请求。 **...

    高清Netty5.0架构剖析和源码解读

    Flush操作42 4.Netty架构50 4.1. 逻辑架构50 5. 附录51 5.1. 作者简介51 5.2. 使用声明51 1. 概述 1.1.JAVA 的IO演进 1.1.1. 传统BIO通信的弊端 在JDK 1.4推出JAVANIO1.0之前,基于JAVA 的所有Socket通信都采用 BIO...

    【项目实战】Netty源码剖析&NIO;+Netty5各种RPC架构实战演练三部曲视频教程(未加密)

    - **RPC框架搭建**:基于Netty构建RPC框架,实现远程服务调用。 - **性能优化实践**:通过参数调整、代码优化等方式提高RPC框架的性能。 - **高级特性探索**:学习Netty中的高级特性,如自定义编解码器、HTTP/2支持...

    基于Netty的CS模式通信模块

    **基于Netty的CS模式通信模块** 在计算机网络编程中,Client-Server(CS)模式是一种常见的架构设计,其中客户端发起请求,服务器响应这些请求。Netty是一个高性能、异步事件驱动的网络应用框架,用于快速开发可...

    Netty5.0架构剖析和源码解读

    Netty 的核心架构基于非阻塞 I/O(NIO,New IO)模型,这是 Java 平台提供的一种高效处理网络 I/O 的方式。非阻塞 I/O 允许单个线程处理多个连接,减少了线程创建和上下文切换的开销,提高了系统的并发能力。在 ...

    基于Netty4与Spring、MyBatis等流行框架的轻量级RESTful HTTP服务器设计源码

    该项目为基于Netty4的轻量级RESTful HTTP服务器设计源码,整合了Spring、MyBatis等流行框架,共包含34个文件,包括14个Java源文件、8个XML配置文件、3个项目偏好文件、1个classpath文件、1个Git忽略文件、1个项目...

    Netty5.0架构剖析和源码解读.PDF

    Netty 5.0 架构基于NIO基础,构建了一套完整的I/O处理模型。其核心组件包括: 1. **ByteBuf**: Netty的内存管理组件,替代了Java的`ByteBuffer`,提供了更高效且易于使用的字节缓冲区。ByteBuf支持预读和写后读,...

    基于netty实现的mqtt客户端,可用于Java、Android环境.zip

    《基于Netty实现的MQTT客户端在Java与Android环境中的应用》 MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅式消息协议,广泛应用于物联网(IoT)领域,尤其是资源受限的设备之间。在本文中...

    Netty架构源码剖析_netty_

    Netty的核心设计原则是基于Java NIO(非阻塞I/O)构建,它提供了高度可定制的线程模型和缓冲区管理,使得网络编程变得更加简洁。Netty的架构主要由以下几个关键组件组成: 1. **ByteBuf**:Netty的缓冲区,替代了...

    netty4中文用户手册

    用户手册首先介绍了 Netty 的架构总览,强调了 Netty 在解决网络编程中通用问题时的高效性。Netty 采用了拦截链模式的事件模型和基于POJO的编程模型,使得开发者可以更加关注业务逻辑,而不用关心底层的通信细节。...

    基于Java实现的基于netty轻量的高性能分布式RPC服务框架

    基于netty3.x实现,后期会升级至netty4.x,充分利用netty的高性能 数据层提供protostuff和hessian的实现,可以自定义扩展ISerializer接口 负载均衡算法采用LRU算法,可以自定义扩展ILoadBlance接口 客户端支持服务的...

    基于Netty框架的位置服务平台的设计与实现.doc

    "基于Netty框架的位置服务平台的设计与实现" 本资源主要介绍了基于Netty框架的位置服务平台的设计与实现,涵盖了相关技术、系统分析、系统设计和数据库设计等方面的内容。 相关技术 在开发基于Netty框架的位置...

Global site tag (gtag.js) - Google Analytics