Norbert 框架介绍 搭建分布式服务   陈峻  [email_address]
What is norbert ? <ul><li>Norbert is a library that provides easy cluster management and workload distribution. With Norbe...
Norbert Features  <ul><li>Cluster management </li></ul><ul><li>通过 zookeeper </li></ul><ul><li>Software load balance </li><...
What we need ?   <ul><li>Scalable </li></ul><ul><li>High performance </li></ul><ul><li>Fault tolarance </li></ul><ul><li>应...
Compare   <ul><li>Hessian </li></ul><ul><li>成熟,二进制流, http ,上层 nginx 负载 </li></ul><ul><li>Thrift </li></ul><ul><li>异构 rpc 多...
Norbert 框架图
Norbert 框架使用 -Server <ul><li>开发步骤: </li></ul><ul><li>1. 初始化 networkServerConfig </li></ul><ul><li>2. 初始化一个 NetworkServer  ...
Norbert 框架使用 -Client <ul><li>初始化 NetworkClientConfig </li></ul><ul><li>通过 config 和 LoadBalancerFactory 初始化 NettyNetworkCli...
Protobuf 数据消息生成 <ul><li>定义消息的数据字段  .proto </li></ul><ul><li>生成 java 的代码: </li></ul><ul><li>protoc --proto_path=src --java_...
Q & A   <ul><li>https:// github.com/rhavyn/norbert   </li></ul>
Upcoming SlideShare
Loading in …5
×

Norbert框架

1,640 views
1,406 views

Published on

Published in: Technology, Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,640
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
24
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Norbert框架

  1. 1. Norbert 框架介绍 搭建分布式服务 陈峻 [email_address]
  2. 2. What is norbert ? <ul><li>Norbert is a library that provides easy cluster management and workload distribution. With Norbert, you can quickly distribute a simple client/server architecture to create a highly scalable architecture capable of handling heavy traffic. </li></ul>
  3. 3. Norbert Features <ul><li>Cluster management </li></ul><ul><li>通过 zookeeper </li></ul><ul><li>Software load balance </li></ul><ul><li>需要自己实现 ConsistentHashLoadBalancer </li></ul><ul><li>Asynchronies client/server RPC </li></ul><ul><li>包装了 netty nio 的 server </li></ul>
  4. 4. What we need ? <ul><li>Scalable </li></ul><ul><li>High performance </li></ul><ul><li>Fault tolarance </li></ul><ul><li>应用: </li></ul><ul><li>新鲜事分发,查询 </li></ul><ul><li>搜索的更新,查询服务 </li></ul>
  5. 5. Compare <ul><li>Hessian </li></ul><ul><li>成熟,二进制流, http ,上层 nginx 负载 </li></ul><ul><li>Thrift </li></ul><ul><li>异构 rpc 多语言支持, socket ,自己实现集群管理,负载均衡 </li></ul><ul><li>Norbert </li></ul><ul><li>Nio/socket ,已集成 zookeeper 管理 / 负载均衡, protobuf 序列化 效率测试: 1000thread 以下,效率差异不大;在 1000thread 以上 hessian 依赖 resin 连接数抛出异常。 Norbert 正常。 </li></ul>
  6. 6. Norbert 框架图
  7. 7. Norbert 框架使用 -Server <ul><li>开发步骤: </li></ul><ul><li>1. 初始化 networkServerConfig </li></ul><ul><li>2. 初始化一个 NetworkServer </li></ul><ul><li>3. Zookeeper 里添加一个 node </li></ul><ul><li>4. 注册处理的 handler ,消息 </li></ul><ul><li>5. 绑定一个 node </li></ul><ul><li>、 </li></ul>
  8. 8. Norbert 框架使用 -Client <ul><li>初始化 NetworkClientConfig </li></ul><ul><li>通过 config 和 LoadBalancerFactory 初始化 NettyNetworkClient </li></ul><ul><li>Client 注册消息的请求 </li></ul><ul><li>发送消息请求 </li></ul><ul><li>获取异步的 response </li></ul>
  9. 9. Protobuf 数据消息生成 <ul><li>定义消息的数据字段 .proto </li></ul><ul><li>生成 java 的代码: </li></ul><ul><li>protoc --proto_path=src --java_out=build/gen src/foo.proto </li></ul><ul><li>Referrence : http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/reference/java-generated.html </li></ul>
  10. 10. Q & A <ul><li>https:// github.com/rhavyn/norbert </li></ul>

×