- 博客(61)
- 收藏
- 关注
原创 双写或者是多写的理解
项目中,很多的场景需要使用到双写或者是多写的操作的。场景1:1.业务数据存储在mysql中;2.分析数据写入到es;3.实时分析需要写入到hbase,clickhouse中进行联机分析和处理;4.为了处理查询的速度问题,需要使用到redis来进行缓存加速的操作这种情况下,数据就需要存到到多个数据库中,充分的利用每一个数据库在不同的场景下面的优势来保证服务的性能和高效处理的速度。但是这样的操作本身存在一定的缺陷的,缺陷的内容如下:1.如何保证在多写操作的时候数据不会出现不同步的问题?那种机制可
2022-04-09 12:32:42
4510
原创 kakfa顺序消费机制
kafka在分区内部是可以保证顺序消费的,所以,我们可以从这个一点进行触发来考虑的。下面是顺序消费的机制和保证:1.根据数据的唯一键来进行分区操作,这个的话,对应的同一个消息的先后操作对应的都是会发送到同一个分区中的,从而保证顺序消费的特性的。2.发送的过程中,可以设置更为严格的服务端的消息的ack机制的,从而保证消息的发送成功的。在消费端的话,使用手动确认的机制可以确保消息被进准的消费一次的。...
2022-04-09 11:51:20
1837
原创 spark cache操作
spark的rdd对应的是一个弹性的分布式的数据集,对应的数据是只读的数据。在这种情况下,充分的使用缓存是能够很好的提高性能的。那么应该如何操作了?spark会将代码对应的解析成为多个dag的有向无环图的操作的。下面是解析之后的一个简单的示意图的从图中可以看到,对应的是存在如下的问题的。每一个DAG对应的都是从数据源读取数据的,这样的操作本身来说是存在问题的。数据本身其实只是需要读取一次就可以了,后续的数据都是需要基于当前的数据来执行操作的,这个读取的数据是可以缓存的。1.所以,可以在第一步读取数
2022-04-05 16:41:58
2233
原创 spark中默认的属性
val spark: SparkSession = SparkSession.builder().master(“local[2]”).appName(“app”).getOrCreate()val wordDataset: Dataset[String] = spark.read.textFile(“spark-test/word.txt”).cache()import spark.implicits._val maxCount: Int = wordDataset.map(word =>
2022-04-05 15:44:54
1022
原创 flink 多个 stream的join处理实现
多个stream的join的难点主要在于以下的几个地方的:1.多个stream在时间上无法保证一直和协调的,在业务上面的体现就是数据在join操作实现的时候会存在不确定性的问题的。2.flink关于多个stream的join操作没有很明显的api提供支持操作?首先,需要确定一下,这个使用flink需要实时操作吗?我觉得大多数的情况下是不需要这样的实时的结果的。至于为什么非要实时的操作的话,有可能是业务层面的要求仅此而已。flink自身在处理多节点的stream的数据不一致达到的使用的方式是使用bar
2022-03-27 09:46:44
3096
原创 flink下面的connector的一致性的思考
flink connector怎么保证数据的一致性的操作1.flink的operator是可以通过相关的配置来保证operator的一致性的,这个不是主要讨论的问题;2.下面我们主要讨论的问题是在数据层面,flink是如何保证数据的基准的一次性的消费的。首先,我们需要有如下的前提,我们认为程序是会出错的,并且flink的处理任务是会报错的。那么我们已经可以获取得到算子的状态数据了,那么我们小得的数据是如何能够实现查找的。下面是一些典型的框架的处理思路的。我们首先讨论的是数据的source侧,然后处理
2022-03-26 16:53:58
2658
原创 chrome 的dom断点的设置
1.选择断点位置2.dom断点设置右键单击dom元素------>Break on-------->选择对应的触发的时间3.执行事件触发
2021-12-19 16:12:32
990
原创 rsa加密的约束和限制
rsa加密存在如下的约束的:1.加密的文本长度不能太长;2.秘钥必须是16的倍数的;3.需要结合填充模式才能保证每一次生成的密文是不一样的;4.对应的是非对称加密的,存在公钥和私钥的。公钥和私钥中都包含右加密的秘钥的。这个可以构建出来公钥和私钥的联系的,从而实现非对称加密的。如何摆脱对于加密文本长度的限制,可以采用如下的方式的:对明文使用对称加密的方式来进行加密操作的,这个整体的长度就减少了很多,大概是100多的样子的,从而满足了对于文本长度的限制了。...
2021-12-16 21:55:22
3793
原创 cpu火焰图
cpu的火焰图:可以查看cpu调用堆栈等的信息,确定是否存在相关的代码性能问题的。需要结合火焰图可以查看相关的性能问题的。甘特图进行执行流程分析。进行流程控制和管理。热力图信息:热力图是产品运营的分析工具,可以用于分析用户的行为信息。...
2021-12-10 10:09:23
371
原创 python测试过程的异常使用
需要注意的是python测试的时候文件不要带test信息或者是debug运行等的时候含有test信息的。会出新提示信息:Empty suite
2021-12-09 20:42:47
101
原创 微服务和ddd领域设计模型
微服务解决的是服务的治理问题的。对于服务的拆分没有很明确的指导意义的。使用领域驱动设计模式ddd可以很方便的指导微服务的拆分问题的。从而补充和完善微服务拆分的问题的。两者之间对应的是一个互补的关系的。我们都知道,架构一个系统的时候,应该从以下几方面考虑:功能维度质量维度(包括性能和可用性)工程维度springcloud 更加关注的是服务的扩展性以及其他的质量属性的。对于功能维度的拆分以及工程维度是没有很明确的管理措施的。从架构角度看,微服务中的服务所关注的范围,正是 DDD 所推崇的六边形架构
2021-12-09 10:32:01
271
原创 redis数据更新操作
redis的数据更新尝尝涉及到和数据库的数据一致性的问题的。最有效的redis数据库一致性的操作方式是如下的:1.先更新数据库;2.删除缓存;3.当再次查询的时候,查询缓存重建缓存就可以了;上面还是存在一个缓存脏数据的问题的。可以使用乐观锁的方式来解决问题的。下面是解决问题的整个的流程的:...
2021-12-08 15:37:26
9912
1
原创 synchronized失效的情况
1.在spring的事务中使用synchronized,会导致锁失效的:底层的原因是如下的:transaction方法的调用对象是当前对象的代理对象的,而synchronized对应的锁定的是当前对象的,两者完全不是同样的一个对象的,所以,此时transaction对应的是失效的。示例1:下面是事务失效的代码的public class DemoServiceImpl {@Autowiredprivate DemoDao demoDao;// 根据id获取序列号,获取完之后进行 + 1@Tran
2021-12-08 10:44:26
2663
原创 spring 事务的相关理解
1.核心观点:spring的事务机制是spring底层采用动态代理机制生成的代理对象拥有的,也就是说,只有代理对象并且是调用了代理对象的相关的事务方法你才可以使用到事务的。这个是核心机制。2.使用事务需要如下的机制的:2-1:事务的回滚操作只有在运行时异常的时候才会处理的,编译时异常是不会被处理的。还有一个前提是在service层的操作是不能够进行异常的捕获处理的。只能抛出异常信息的。2-2:同样的一个service方法,在一个普通的方法中调用标注有transaction的事务方法的时候,是否会产生事
2021-12-07 11:31:33
129
原创 json使用推荐-jackson解析
json解析推荐使用jackson来解析json得到相关的json的解析操作的。不推荐使用fastjson完成相关的配置的。使用jackson的话,只需要引入下面的一个依赖就可以了com.fasterxml.jackson.corejackson-databind2.10.1...
2021-12-07 09:22:56
93
原创 java 正则表达式学习
import java.util.regex.Matcher;import java.util.regex.Pattern;/**功能描述@since 2021-12-06*/public class Test {public static void main(String[] args) {/*String hi=“hi Lucy”;final Pattern compile = Pattern.compile("^hi.Lucy");finalMatchermatcher=c
2021-12-06 17:16:59
278
原创 charles证书信任设置
设置->通用->关于本机->证书信任设置-> 找到charles proxy custom root certificate然后信任该证书即可.可以尝试检查一下charles的证书的信任设置操作和相关的实现的。这个是需要进行关注的。
2021-12-06 15:55:39
1302
原创 微服务学习和总结
1.微服务网关层的高可用架构:网关层是直接对外提供服务操作,对应需要设置高可用。网关层其本质是一个web服务的。可以使用nginx做7层的高可用架构的。upstream gateway {server 127.0.0.1:9002;server 127.0.0.1:9003;}location / {proxy_pass http://gateway;}nginx上层可以做4层的高可用的。这样就可以构建出来出来一个高可用的网关层服务了。对应的可以采用这样的架构设计微服务网关层的服务的。
2021-12-06 11:17:47
1292
原创 安卓使用charles的配置项
在配置之前需要检查如下的项目:1.手机时间设置问题:手机时区相关的信息需要对应的准确;2.需要修改nexus对应的搜索引擎为百度,检测使用百度来完成相关的网络访问,确认网络不存在问题。检测测试发现是可以上网的。符合基本的检测要求下面开始配置charles的相关的配置的...
2021-12-04 20:47:00
1794
原创 frida相关的版本依赖信息
frida测试推荐使用安卓8以上版本的。对应的相关软件的版本信息如下:pip install frida14.2.18pip install frida-tools9.2.4pip install objection1.11.0frida-server-14.2.18-android-arm64安卓6版本会存在无法使用frida的fork机制的问题的。需要对应的升级到安卓8的版本的。下面是安卓6版本对应的frida的配置的pip install frida12.8.0 -i https://
2021-12-04 10:46:57
2209
原创 java代码性能优化实例
package com.hihonor.appsearch.utils;import java.lang.ref.PhantomReference;import java.lang.ref.ReferenceQueue;import java.util.ArrayList;import java.util.List;/**功能描述@since 2021-12-03*/public class Test {public static void main(String[] args) {
2021-12-03 15:56:42
2057
原创 流程引擎 activity
https://blog.youkuaiyun.com/shang_xs/article/details/90718703
2021-12-01 17:18:49
137
原创 es 聚合操作实现
#GET /_cat/indices#查看download_num的最大值分布POST /ry_market_2_ru/_search?pretty{“size”: 0,“aggs”: {“download_num”: {“max”: {“field”: “download_num”}}}}#查看download_num的百分比区间POST /ry_market_2_ru/_search?pretty{“size”: 0,“aggs”:{“download_num”:{
2021-11-30 09:57:36
138
原创 frida异常
异常信息:frida.TransportError: the connection is closed经过代码检查,以及端口检查之后,任然无法解决问题。对应的解决办法如下:adb shellsukill -9 9565 #frida-server的进程/frida-server-12.8.0-android-arm64& #重启frida-server进程即可解决问题说明了一点:长时间的frida-server启用的话,对应的需要kill然后重启的,存在很多的问题的。...
2021-11-28 19:37:50
4883
1
原创 function score
@Overridepublic Optional<List<Map<String, Object>>> queryByKeyWord(KeyWordBean keyWordBean) throws IOException {boolean result = validateParms(keyWordBean);if (!result) {return Optional.empty();}SearchSourceBuilder searchSourceBuild
2021-11-25 15:55:28
174
原创 logstash数据导入操作
[appmarket@ecs-appmarket-test05 bin]$ cat ru.confinput{elasticsearch {hosts => [“10.89.36.57:9200,10.89.38.123:9200,10.89.36.33:9200”]index => “ry_market_1_ru”#type => “_doc”size => 1000scroll => “5m”docinfo => false}}filter {
2021-11-22 17:25:14
1272
原创 es 创建索引
PUT /ry_market_ru{“settings”: {“number_of_shards”: 3,“number_of_replicas”: 0},“mappings”: {“dynamic”: “strict”,“properties”: {“apk_name_lang”: {“type”: “text”,“store”: “true”},“description”: {“type”: “text”,“store”: “true”},“new_label_name
2021-11-22 10:23:54
141
原创 es的http以及https连接方式
package com.hihonor.appsearch.config;import com.hihonor.appsearch.util.AesGcm128Util;import com.hihonor.appsearch.util.CleanPathUtil;import com.hihonor.appsearch.utils.Constants;import org.apache.http.HttpHost;import org.apache.http.auth.AuthScope;im
2021-11-19 19:43:02
3407
原创 优化建议和优化点
我思考到的优化关键点:1.打造通用框架,比如将安全,日志,授权,aiops,运维监控等打造成为通用组件;2.构建通用的maven项目模板,批量的定制和创建项目架构,输入依赖,自动实现相关依赖的添加和实现。3.现阶段的虚拟机服务后期可能存在云环境迁移问题,可以探索云环境改造,适应更加业务并发量的支持。积极引入docker,k8s适应业务快速增长。44.探索云龙的自动化适配改造方式,大幅降低云龙适配个性化打包方式的难度等。最终实现的目标是:1.开发专心开发业务代码,减少开发因为其他的原因导致的时间经历的浪费
2021-11-18 09:16:26
803
原创 java项目需要大量的filter如何处理
Java中的filter操作,其实在spring框架中已经存在大量的filter的默认实现的。这个默认的实现质量非常的高的,所以,对应的实际的处理问题的逻辑应该是这样的:1.使用spring框架中已经实现和处理好的过滤器,这样的话,效率更高的;2.在框架不支持的情况下,尝试使用别人已经实现好的,但是没有收录到spring中的;3.自己编写filter实现自定义操作实现。下面是一个典型的filter的操作实现的:import org.springframework.stereotype.Compon
2021-11-18 08:40:58
428
原创 flnk hive
import com.alibaba.fastjson.JSON;import com.hihonor.cloud.crypto.utils.CommonClass;import com.hihonor.cloud.crypto.utils.ConfigUtils;import com.hihonor.cloud.crypto.utils.StreamExecutionEnvironmentIUtils;import com.hihonor.cloud.three.*;import org.apa
2021-11-15 08:58:18
1392
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人