Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5b75124

Browse files
committed
docs: minor changes in dubbo
1 parent 7e86dda commit 5b75124

File tree

3 files changed

+10
-14
lines changed

3 files changed

+10
-14
lines changed

‎docs/distributed-system/distributed-session.md‎

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
## 面试官心理分析
55
面试官问了你一堆 dubbo 是怎么玩儿的,你会玩儿 dubbo 就可以把单块系统弄成分布式系统,然后分布式之后接踵而来的就是一堆问题,最大的问题就是**分布式事务****接口幂等性****分布式锁**,还有最后一个就是**分布式 session**
66

7-
当然了,分布式系统中的问题何止这么一点,非常之多,复杂度很高,但是这里就是说下常见的几个,也是面试的时候常问的几个。
7+
当然了,分布式系统中的问题何止这么一点,非常之多,复杂度很高,这里只是说一下常见的几个问题,也是面试的时候常问的几个。
88

99
## 面试题剖析
1010
session 是啥?浏览器有个 cookie,在一段时间内这个 cookie 都存在,然后每次发请求过来都带上一个特殊的 `jsessionid cookie`,就根据这个东西,在服务端可以维护一个对应的 session 域,里面可以放点数据。
1111

12-
一般只要你没关掉浏览器,cookie 还在,那么对应的那个 session 就在,但是如果 cookie 没了,session 也就没了。常见于什么购物车之类的东西,还有登录状态保存之类的。
12+
一般的话只要你没关掉浏览器,cookie 还在,那么对应的那个 session 就在,但是如果 cookie 没了,session 也就没了。常见于什么购物车之类的东西,还有登录状态保存之类的。
1313

1414
这个不多说了,懂 Java 的都该知道这个。
1515

@@ -49,8 +49,7 @@ session 是啥?浏览器有个 cookie,在一段时间内这个 cookie 都存
4949
还可以用上面这种方式基于 redis 哨兵支持的 redis 高可用集群来保存 session 数据,都是 ok 的。
5050

5151
### spring session + redis
52-
53-
第一种方式会与 tomcat 容器重耦合,如果我要将 web 容器迁移成 jetty,难道还要重新把 jetty 都配置一遍?
52+
上面所说的第二种方式会与 tomcat 容器重耦合,如果我要将 web 容器迁移成 jetty,难道还要重新把 jetty 都配置一遍?
5453

5554
因为上面那种 tomcat + redis 的方式好用,但是会**严重依赖于web容器**,不好将代码移植到其他 web 容器上去,尤其是你要是换了技术栈咋整?比如换成了 spring cloud 或者是 spring boot 之类的呢?
5655

@@ -107,20 +106,17 @@ session 是啥?浏览器有个 cookie,在一段时间内这个 cookie 都存
107106

108107
示例代码:
109108
```java
110-
@Controller
109+
@RestController
111110
@RequestMapping("/test")
112111
public class TestController {
113112

114113
@RequestMapping("/putIntoSession")
115-
@ResponseBody
116114
public String putIntoSession(HttpServletRequest request, String username) {
117-
request.getSession().setAttribute("name", "leo");
118-
115+
request.getSession().setAttribute("name", "leo");
119116
return "ok";
120117
}
121118

122119
@RequestMapping("/getFromSession")
123-
@ResponseBody
124120
public String getFromSession(HttpServletRequest request, Model model){
125121
String name = request.getSession().getAttribute("name");
126122
return name;
@@ -131,4 +127,4 @@ public class TestController {
131127

132128
上面的代码就是 ok 的,给 sping session 配置基于 redis 来存储 session 数据,然后配置了一个 spring session 的过滤器,这样的话,session 相关操作都会交给 spring session 来管了。接着在代码中,就用原生的 session 操作,就是直接基于 spring sesion 从 redis 中获取数据了。
133129

134-
实现分布式的会话有很多种方式,我说的只不过是比较常见的几种方式,tomcat + redis 早期比较常用,但是会重耦合到 tomcat 中;近些年,通过 spring session 来实现。
130+
实现分布式的会话有很多种方式,我说的只不过是比较常见的几种方式,tomcat + redis 早期比较常用,但是会重耦合到 tomcat 中;近些年,通过 spring session 来实现。

‎docs/distributed-system/dubbo-load-balancing.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略
2020

2121
举个栗子。
2222

23-
跟运维同学申请机器,有的时候,我们运气好,正好公司资源比较充足,刚刚有一批热气腾腾、刚刚做好的一批虚拟机新鲜出炉,配置都比较高:8核+16G 机器,申请到 2 台。过了一段时间,我们感觉 2 台机器有点不太够,我就去找运维同学说,"哥儿们,你能不能再给我一台机器",但是这时只剩下一台 4核+8G 的机器。我要还是得要。
23+
跟运维同学申请机器,有的时候,我们运气好,正好公司资源比较充足,刚刚有一批热气腾腾、刚刚做好的一批虚拟机新鲜出炉,配置都比较高:8 核 + 16G 机器,申请到 2 台。过了一段时间,我们感觉 2 台机器有点不太够,我就去找运维同学说,"哥儿们,你能不能再给我一台机器",但是这时只剩下一台 4 核 + 8G 的机器。我要还是得要。
2424

25-
这个时候,可以给两台 8核16G 的机器设置权重 4,给剩余 1 台 4核8G 的机器设置权重 2。
25+
这个时候,可以给两台 8 核 16G 的机器设置权重 4,给剩余 1 台 4 核 8G 的机器设置权重 2。
2626

2727
#### leastactive loadbalance
2828
这个就是自动感知一下,如果某个机器性能越差,那么接收的请求越少,越不活跃,此时就会给**不活跃的性能差的机器更少的请求**
@@ -50,4 +50,4 @@ dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略
5050
逐个调用所有的 provider。
5151

5252
### dubbo动态代理策略
53-
默认使用 javassist 动态字节码生成,创建代理类。但是可以通过 spi 扩展机制配置自己的动态代理策略。
53+
默认使用 javassist 动态字节码生成,创建代理类。但是可以通过 spi 扩展机制配置自己的动态代理策略。

‎docs/distributed-system/zookeeper-application-scenarios.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ zookeeper 都有哪些使用场景?
1717
- HA高可用性
1818

1919
### 分布式协调
20-
这个其实是 zookeeper 很经典的一个用法,简单来说,就好比,你 A 系统发送个请求到 mq,然后 B 系统消息消费之后处理了。那 A 系统如何知道 B 系统的处理结果?用 zookeeper 就可以实现分布式系统之间的协调工作。A 系统发送请求之后可以在 zookeeper 上**对某个节点的值注册个监听器**,一旦 B 系统处理完了就修改 zookeeper 那个节点的值,A 立马就可以收到通知,完美解决。
20+
这个其实是 zookeeper 很经典的一个用法,简单来说,就好比,你 A 系统发送个请求到 mq,然后 B 系统消息消费之后处理了。那 A 系统如何知道 B 系统的处理结果?用 zookeeper 就可以实现分布式系统之间的协调工作。A 系统发送请求之后可以在 zookeeper 上**对某个节点的值注册个监听器**,一旦 B 系统处理完了就修改 zookeeper 那个节点的值,A 系统立马就可以收到通知,完美解决。
2121

2222
![zookeeper-distributed-coordination](/images/zookeeper-distributed-coordination.png)
2323

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /