删除无关脚本

This commit is contained in:
zengqiao
2022-08-26 11:29:30 +08:00
parent f03d94935b
commit e68358e05f
3 changed files with 0 additions and 294 deletions

View File

@@ -1,98 +0,0 @@
![Logo](../assets/KnowStreamingLogo.png)
# 健康巡检
## 1、前言
---
## 2、已有巡检
### 2.1、Cluster健康巡检(1个)
#### 2.1.1、集群Controller数错误
**说明**
- 集群Controller数不等于1表明集群集群无Controller或者出现了多个Controller
**配置**
---
### 2.2、Broker健康巡检(2个)
#### 2.2.1、Broker-RequestQueueSize被打满
**说明**
- Broker的RequestQueueSize被打满
**配置**
---
#### 2.2.2、Broker-NetworkProcessorAvgIdle过低
**说明**
- Broker的NetworkProcessorAvgIdle指标当前过低
**配置**
---
### 2.3、Topic健康巡检(2个)
#### 2.3.1、Topic 无Leader数
**说明**
- 当前Topic的无Leader分区数超过一定值
**配置**
#### 2.3.1、Topic 长期处于未同步状态
**说明**
- 指定的一段时间内Topic一直处于未同步的状态
**配置**
---
### 2.4、Group健康巡检(1个)
#### 2.4.1、Group Re-Balance太频繁
**说明**
- 指定的一段时间内Group Re-Balance的次数是否过多
**配置**
---
## 3、自定义增强
如何增加想要的巡检?

View File

@@ -1,110 +0,0 @@
![Logo](../assets/KnowStreamingLogo.png)
## 登录系统对接
### 前言
KnowStreaming 除了实现基于本地MySQL的用户登录认证方式外还实现了基于Ldap的登录认证。
但是,登录认证系统并非仅此两种,因此本文将介绍 KnowStreaming 如何对接自有的用户登录认证系统。
下面我们正式开始介绍登录系统的对接。
### 如何对接?
- 实现Log-Common中的LoginService的三个接口即可
```Java
// LoginService三个方法
public interface LoginService {
/**
* 验证登录信息,同时记住登录状态
*/
UserBriefVO verifyLogin(AccountLoginDTO loginDTO, HttpServletRequest request, HttpServletResponse response) throws LogiSecurityException;
/**
* 登出接口,清楚登录状态
*/
Result<Boolean> logout(HttpServletRequest request, HttpServletResponse response);
/**
* 检查是否已经登录
*/
boolean interceptorCheck(HttpServletRequest request, HttpServletResponse response,
String requestMappingValue,
List<String> whiteMappingValues) throws IOException;
}
```
没错,登录就是如此的简单,仅仅只需要实现上述的三个接口即可。说了半天,具体如何做呢,能不能给个例子?
### 有没有例子?
我们以Ldap对接为例说明KnowStreaming如何对接登录认证系统。
```Java
// 继承 LoginService 接口
public class LdapLoginServiceImpl implements LoginService {
private static final Logger LOGGER = LoggerFactory.getLogger(LdapLoginServiceImpl.class);
// Ldap校验
@Autowired
private LdapAuthentication ldapAuthentication;
@Override
public UserBriefVO verifyLogin(AccountLoginDTO loginDTO,
HttpServletRequest request,
HttpServletResponse response) throws LogiSecurityException {
String decodePasswd = AESUtils.decrypt(loginDTO.getPw());
// 去LDAP验证账密
LdapPrincipal ldapAttrsInfo = ldapAuthentication.authenticate(loginDTO.getUserName(), decodePasswd);
if (ldapAttrsInfo == null) {
// 用户不存在,正常来说上如果有问题,上一步会直接抛出异常
throw new LogiSecurityException(ResultCode.USER_NOT_EXISTS);
}
// 进行业务相关操作
// 记录登录状态Ldap因为无法记录登录状态因此有KnowStreaming进行记录
initLoginContext(request, response, loginDTO.getUserName(), user.getId());
return CopyBeanUtil.copy(user, UserBriefVO.class);
}
@Override
public Result<Boolean> logout(HttpServletRequest request, HttpServletResponse response) {
request.getSession().invalidate();
response.setStatus(REDIRECT_CODE);
return Result.buildSucc(Boolean.TRUE);
}
@Override
public boolean interceptorCheck(HttpServletRequest request, HttpServletResponse response, String requestMappingValue, List<String> whiteMappingValues) throws IOException {
// 其他处理
// 检查是否已经登录
String userName = HttpRequestUtil.getOperator(request);
if (StringUtils.isEmpty(userName)) {
// 未登录,则进行登出
logout(request, response);
return Boolean.FALSE;
}
// 其他业务处理
return Boolean.TRUE;
}
}
```
### 背后原理是?
- KnowStreaming 会拦截所有的接口请求;
- 拦截到请求之后如果是登录的请求则调用LoginService.verifyLogin();
- 拦截到请求之后如果是登出的请求则调用LoginService.logout();
- 拦截到请求之后如果是其他请求则调用LoginService.interceptorCheck();