- Kafka 基础与架构理解
StaticKing
KAFKAkafka
目录前言Kafka基础概念消息队列简介:Kafka与传统消息队列(如RabbitMQ、ActiveMQ)的对比Kafka的组件Kafka的工作原理:消息的生产、分发、消费流程Kafka系统架构Kafka的分布式架构设计Leader-Follower机制与数据复制Log-basedStorage和持久化Broker间通信协议Zookeeper在Kafka中的角色总结前言Kafka是一个分布式的消息系
- 【网络安全 | 代码审计】JFinal之DenyAccessJsp绕过
秋说
网络安全web安全java代码审计漏洞挖掘
未经许可,不得转载。文章目录前言代码审计推理绕过Tomcat解析JSP总结概念验证阐发前言JFinal是一个基于Java的轻量级MVC框架,用于快速构建Web应用程序。它的设计理念是追求极简、灵活、高效,旨在提高开发效率,减少冗余代码的编写,适合中小型项目以及对性能有较高要求的项目。在较新的JFinal版本中,默认情况下无法直接通过浏览器地址栏输入.jsp文件名来访问对应的JSP文件。也就是说,主
- 分布式中间件-几个常用的消息中间件
问道飞鱼
分布式技术分布式中间件
文章目录常见消息中间件1.RabbitMQ2.ApacheKafka3.RedisPub/Sub4.ActiveMQ5.AmazonSimpleNotificationService(SNS)和SimpleQueueService(SQS)6.RocketMQ差异总结消息协议1.AMQP(AdvancedMessageQueuingProtocol)2.STOMP(SimpleTextOrient
- 极简的Restful框架推荐->Resty
weixin_33881140
jsonjava开发工具
源码链接:Resty开发文档如果你还不是很了解restful,或者认为restful只是一种规范不具有实际意义,推荐一篇osc两年前的文章:RESTfulAPI设计最佳实践和Infoq的一篇极其理论的文章理解本真的REST架构风格虽然有点老,介绍的也很简单,大家权当了解,restful的更多好处,还请google拥有jfinal/activejdbc一样的activerecord的简洁设计,使用更
- ActiveMQ集群、负载均衡、消息回流
星星都没我亮
ActiveMQactivemq
文章目录集群配置主备集群SharedFileSystemMasterSlavefailover故障转移协议TransportOptions负载均衡静态网络配置可配置属性URI的几个属性NetworkConnectorProperties动态网络配置消息回流消息副本集群配置官方文档http://activemq.apache.org/clustering主备集群http://activemq.apa
- 消息中间件之ActiveMQ — 07
筑梦之人
消息中间件MQjavaactivemq
集群配置官方文档主备集群官方文档MasterSlaveTypeRequirementsProsConsSharedFileSystemMasterSlave共享文件系统,如SAN需要运行多个slave。当master挂掉之后会自动进行故障恢复需要共享文件系统JDBCMasterSlave共享数据库需要运行多个slave。当master挂掉之后会自动进行故障恢复需要一个共享的数据库。也相对缓慢,因为
- ActiveMQ集群下的消息回流功能
海拉姆
mq
"丢失"的消息如果有broker1和broker2通过networkConnector连接,有一个consumer1连接到broker1,一个consumer2连接到broker2,程序往broker1上面发送30条消息,这时consumer2连接到broker2消费消息,当consumer2消费了15条消息时,broker2挂掉了。但是还剩下15条消息在broker2上面,这些消息就好像消息了,
- 聊聊artemis消息的推拉模式
go4it
序本文主要研究一下artemis消息的推拉模式拉模式receiveactivemq-artemis-2.11.0/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageConsumer.javapublicfinalclassActiveMQMessageConsumerimpl
- shiro 采用redis共享session,出现反序列化错误的排查过程
nightseventhunit
redisjava数据库
这是一个老系统改造的过程,该老系统采用的框架是#jfinal#shiroredis,采用outh2协议的方式,对多个子系统之间进行单点登录,以实现系统之间的session,由于速度方面的影响,现在要改造成多个系统之间共享session,并采用redis集群的方式。说明一下当前项目的整体运行环境,此项目的多个子系统都在同一个域名下,通过上下文不同来区分子系统。以下将记录整个改造过程,采用jfinal
- 1. ActiveMQ的生产者,消费者事务
水无痕simon
java-activemqactivemqjava
activemq的基本的消息发送操作:packagecom.paic.mq;importorg.apache.activemq.ActiveMQConnectionFactory;importjavax.jms.*;/***发送Activemq消息队列*/publicclassProducer{privatestaticfinalStringURL="tcp://127.0.0.1:61616";
- 收集网上关于ActiveMQ ,JMS 的入门知识
leisure55
Javajmsactivemqsessionfunctionstringapplication
(注:本文内容来自互联网,大部分内容引用于http://whitesock.javaeye.com/,自己整理以作学习用)JMS基础概念强烈推荐参考:jms规范http://cds-esd.sun.com/ESD4/JSCDL/jms/1.1-fr/jms-1_1-fr-spec.pdf?AuthParam=1251941497_cd0bdf66dcfd87835d5a7b024d2b7ae1&T
- ActiveMQ生产者详解
iteye_11587
ActiveMQactivemq
JMS(ActiveMQ)PTP和PUB/SUB模式实例:[url]http://donald-draper.iteye.com/blog/2347445[/url]ActiveMQ连接工厂、连接详解:[url]http://donald-draper.iteye.com/blog/2348070[/url]ActiveMQ会话初始化:[url]http://donald-draper.iteye
- 第十二章节 xxjob, seata, zk, minio,activeMQ进行 helm化
Wade_Crab
dockerkubernetes容器
要将你提供的Docker命令转换为HelmChart,你需要将相关的配置转化为Kubernetes资源文件,并使用Helm的模板语法进行参数化配置。以下是一个基本的HelmChart示例,包括Deployment、Service和Values.yaml文件。helmcreatexxl-job-admin1.values.yaml这是HelmChart中用于定义默认值的文件。你可以在这里配置镜像、端
- 消息中间件概述
小孩真笨
什么是JMSJava消息服务(JavaMessageService)即JMS,是一个Java平台中关于面向消息中间件的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。常用的消息中间件综述组件\特点ActiveMQRabbitMQKafka跨语言支持(Java优先)语言无关支持(Java优先)支持协议OpenWire,Stomp,XMPP,AMQPAMQP-优点遵循JMS规范,
- MQ Springboot整合ActiveMQ
小P聊技术
1资源资源信息版本号备注activeMQ5.16.1IP:192.168.51.4springboot2.1.5.RELEASEprettyZoo2.0zookeeper可视化工具springboot-activemq-demo源码下载2zookeeper安装需要安装zookeeper,如果未安装,可参考博文:MQActiveMQ安装部署和配置3springboot整合3.1pom文件4.0.0o
- 中间件简介
Will_1130
中间件
中间件是指位于应用程序和操作系统之间的软件组件,用于协调和连接不同的系统、服务或组件,以实现数据传输、通信和功能扩展。它们在分布式系统、网络通信和应用集成中起着关键的作用。那么常见的中间件有哪些呢?消息队列中间件:消息队列中间件允许应用程序之间异步地发送和接收消息。常见的消息队列中间件包括ApacheKafka、RabbitMQ、ActiveMQ和ZeroMQ、TongLinkQ(TLQ)。它们用
- java springboot 集成activeMQ(保姆级别教程)
大白菜程序猿
JAVAjavaspringbootjava-activemq
javaspringboot集成activeMQ1.配置信息spring:#配置消息队列activemq:broker-url:tcp://127.0.0.1:61616user:adminpassword:admin2.ActiveMqConfig消息队列配置信息importorg.apache.activemq.ActiveMQConnectionFactory;importorg.sprin
- 网页端监听用户登陆状态
小可乐-我一直在
bootspringbootactivemqredis
项目结构:pc管理端,pc机构端,vue,springboot,mysql,activeMq,redis项目需求:需要记录用户登陆时间,登出时间,登陆时长注:一般用户不会走退出登录操作,会直接关闭页面,或者关闭浏览器人员:java后端(不懂前端)解决方案:假设pc管理端admin账户ID为1用户标识为1-1(管理端-用户ID)步骤一:先生成用户身份信息1、用户登陆后将token存进redis,数据
- Kafka、ActiveMQ、RabbitMQ 及 RocketMQ区别比较
木西爷
kafkaactivemqrabbitmq阿里云rocketmq
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。它可以实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。消息队列在电商系统、消息通讯、日志收集等应用中扮演着关键作用,以阿里为例,其研发的消息队列(RocketMQ)在历次天猫“双十一”活动中支撑了万亿级的数据洪峰,为大规模交易提供了有力保障。常见消息中间件对比特性ActiveMQRab
- MQ横向对比:RocketMQ、Kafka、RabbitMQ、ActiveMQ、ZeroMQ
namelessmyth
Java框架MQrocketmqkafkarabbitmqactivemq
前言本文将从多个角度全方位对比目前比较常用的几个MQ:RocketMQKafkaRabbitMQActiveMQZeroMQ下文单独说明。表格对比特性RocketMQKafkaRabbitMQActiveMQ单机吞吐量10万级,支撑高吞吐10万级以上,甚至有文献称,可以达到单机百万级TPS。万级,同ActiveMQ万级,相对其他MQ较低。topic数量对吞吐量的影响topic可以达到几百/几千的级
- SpringBoot整合ActiveMQ步骤
MarkHD
springbootjava-activemqactivemq
SpringBoot整合ActiveMQ主要涉及以下几个步骤:添加依赖:在SpringBoot项目的pom.xml文件中添加ActiveMQ的依赖。org.apache.activemqactivemq-spring版本号请替换“版本号”为当前可用的ActiveMQ版本。配置ActiveMQ:在SpringBoot的配置文件(如application.properties或application.
- 消息中间件:Puslar、Kafka、RabbigMQ、ActiveMQ
MarkHD
kafkaactivemq分布式
消息中间件是一种独立的技术组件,允许应用程序和应用程序之间进行通信。它们主要用于处理异步消息,解耦应用程序,削峰填谷,以及提供可靠的消息传输。以下是提到的几种消息中间件的概述:Pulsar:Pulsar是一个由Apache软件基金会管理的开源分布式发布-订阅消息系统。它支持多租户、持久化存储、多机房跨区域数据复制,并具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。Pulsar的单个实例原
- XMall 开源商城 SQL注入漏洞复现(CVE-2024-24112)
OidBoy_G
漏洞复现web安全安全sql
0x01产品简介XMall开源电商商城是开发者Exrick的一款基于SOA架构的分布式电商购物商城前后端分离前台商城:Vue全家桶后台管理:Dubbo/SSM/Elasticsearch/Redis/MySQL/ActiveMQ/Shiro/Zookeeper等。0x02漏洞概述XMall开源商城/item/list、/item/listSearch、/sys/log、/order/list、/m
- ActiveMQ高可用架构涉及常用功能整理
李姓门徒
中间件大数据RabbitMQactivemq架构
ActiveMQ高可用架构涉及常用功能整理1.activemq的集群模式2.镜像模式高可用系统架构和相关组件2.1架构说明2.2相关概念说明2.3消息模型2.3.1点对点2.3.2发布订阅3.activemq常用命令4.activemq配置集群5.疑问和思考5.1activemq的数据删除策略是怎样的?5.2activemq希望一个数据能够被多个消费者消费,该如何实现?6.参考文档探讨active
- ActiveMQ 笔记(五)ActiveMQ的传输协议
鮀城小帅
#ActiveMQActivemq传输协议autonio
面试思考题:默认的61616端口如何更改你生产上的连接协议如何配置的?使用tcp吗?一.Activemq的传输协议传输协议官网连接:ActiveMQ1.定义:ActiveMQ支持的client-broker通讯协议有:TVP、NIO、UDP、SSL、Http(s)、VM。其中配置TransportConnector的文件在ActiveMQ安装目录的conf/activemq.xml中的标签之内。见
- 七、ActiveMQ的传输协议
青啊青斯
#ActiveMQactivemq
ActiveMQ的传输协议一、是什么二、协议1.TCP(默认)2.NIO3.AMQP4.STOMP5.SSL6.MQTT7WS三、NIO配置案例1.修改activemq.xml2.重启3.生产者/消费者4.性能提升4.1配置4.2生产者/消费者一、是什么官网地址:http://activemq.apache.org/configuring-version-5-transports.htmlActi
- Springboot 中嵌入ActiveMQ
JAVA-新的开始
springJAVA分布式事务javaactivemqspringboot
由于在项目中要用于MQ,但是如果独立安装一下MQ不太适合服务的迁移,因此决定采用内嵌的方式进行整全ACTIVEMQ具体步骤如下:1、在新建的SpringBoot项目中的POM文件下引入如下依赖org.springframework.bootspring-boot-starter-activemqorg.apache.activemqactivemq-springorg.apache.activem
- ActiveMQ(二)使用 Java 操作 ActiveMQ
一起来搬砖呀
中间件分布式技术activemqjava中间件
使用Java操作ActiveMQ导入maven依赖org.apache.activemqactivemq-all5.16.2现在的消息队列大概分为队列模型和发布订阅模型队列Queue队列模型:消费者之间是竞争的关系,每个消费者只能收到队列中的一部分消息如果需要将一份数据发送给多个消费者,单个队列满足不了需求,可以为每个消费者创建一个单独的队列生产者代码importorg.apache.active
- 深入浅出JMS ActiveMQ
liky5387
java
深入浅出JMS(一)--JMS基本概念摘要:TheJavaMessageService(JMS)APIisamessagingstandardthatallowsapplicationcomponentsbasedontheJavaPlatformEnterpriseEdition(JavaEE)tocreate,send,receive,andreadmessages.Itenablesdist
- ActiveMQ_08 ActiveMQ的broker
拾光老头、
ActiveMQActiveMQ
(1)broker是什么相当于一个ActiveMQ服务器实例。说白了,Broker其实就是实现了用代码的形式启动ActiveMQ将MQ嵌入到Java代码中,以便随时用随时启动,在用的时候再去启动这样能节省了资源,也保证了可用性。这种方式,我们实际开发中很少采用,因为他缺少太多了东西,如:日志,数据存储等等。(2)启动broker时指定配置文件启动broker时指定配置文件,可以帮助我们在一台服务器
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D