- 博客(781)
- 资源 (4)
- 收藏
- 关注
原创 全方位详解微服务架构中的Service Mesh(服务网格)
随着微服务架构的广泛应用,微服务之间的通信管理、流量控制、安全保障等问题变得日益复杂。服务网格(Service Mesh)作为一种新兴的技术,为解决这些问题提供了有效的方案。它将服务间通信的管理从微服务代码中分离出来,构建了一个专门用于处理服务间通信的基础设施层。
2025-05-21 15:44:22
1302
原创 Kafka、RabbitMQ、RocketMQ的区别
消息模型Kafka 以流式数据为核心,适合连续数据管道RabbitMQ 强调消息可靠投递与灵活路由RocketMQ 在事务与顺序性上表现突出运维复杂度Kafka 需管理 ZooKeeper 和 Broker 集群RabbitMQ 轻量但集群扩展较复杂RocketMQ 依赖 NameServer 简化运维协议生态Kafka 使用自定义协议,专为高吞吐优化RabbitMQ 兼容 AMQP、STOMP 等多协议RocketMQ 协议设计兼容部分 Kafka 特性。
2025-05-13 14:41:56
559
原创 SSM与SSH的区别对比
随着 Spring Boot 的普及,SSM 逐渐成为主流(简化配置、支持快速开发),而 SSH 因 Struts2 的安全漏洞和 Hibernate 的灵活性限制,使用率逐年下降。支持一级缓存(Session 级别)、二级缓存(SessionFactory 级别)和查询缓存,但配置复杂且易引发数据一致性问题。配置复杂(需 XML 定义 Action),Hibernate 需配置映射关系。提供一级缓存(SqlSession 级别)和可配置的二级缓存,灵活性高。
2025-05-13 10:42:31
601
原创 API 网关(API Gateway)在微服务中的作用
微服务架构的智能调度中心:API网关集中处理路由、协议转换、身份验证与限流熔断,通过缓存监控构建高效安全屏障。选型需平衡功能、性能与扩展性,Kong、AWS等开源与云服务方案为系统吞吐量保驾护航。在微服务架构中,API 网关扮演着至关重要的角色,它是所有客户端请求的单一入口点,负责将请求路由到相应的微服务,并提供一系列跨领域的服务,例如身份验证、授权、限流、监控等。本文将深入探讨 API 网关在微服务中的作用、优势以及如何选择合适的 API 网关。
2025-05-10 22:21:42
143
原创 微服务(Microservices)与面向服务架构(SOA)、单体架构:深入解析与指南
SOA通过ESB整合企业级系统,确保严格治理与复用,适合金融等强一致性场景;微服务以独立部署、技术自由和弹性伸缩取胜,驱动电商、SaaS快速迭代。混合架构正成趋势:核心业务用SOA稳根基,创新模块借微服务提敏捷,Service Mesh技术让分布式治理更轻盈。
2025-05-06 17:18:37
933
原创 微服务架构详解
微服务架构是一种将应用程序构建为一组相互连接的小型、自包含组件的方法。它就像有一组工人都在协调地工作,有着共同的目标,每个人都从特定的专业知识出发进行操作。这与之前的单体结构不同,单体结构就像有一个大人物做所有事情,并且随着应用程序变得复杂,控制起来很麻烦。微服务架构与传统的单体架构在以下方面有所不同。微服务将功能分散到各个独立的服务中,而单体架构则将所有功能组合在单个代码库中。松耦合:微服务通过 API 进行通信,具有高内聚和低耦合的特点,而单体应用中,组件通常是耦合且内聚的。
2025-05-06 16:30:17
929
原创 你能体验的字节版Manus扣子空间来了:瞄准工作场景,做一个 Agent 系统
这款产品由字节自研的豆包等国产大模型驱动,提供通用 Agent 入口,支持 MCP(Model Context Protocol)协议,引入多款可以调用的工具,包括飞书云文档、飞书表格等,强化解决工作任务的能力。在扣子团队的产品路线图中,现在内测的扣子空间还是初级形态。我们让它处理智能眼镜的用户访谈记录,它能从用户原始的访谈记录中提炼出规律,然后给出相对细致的功能开发建议,比如 “日常可佩戴的外观,避免过于浮夸”,这在原始访谈记录中很少出现,但有多位用户访谈中提到 “方便摸鱼”。
2025-04-23 11:04:15
1025
原创 国内使用Claude 3.7 sonnet的6种方法及Cursor+Claude3.7实现从原型到app开发
Claude3.7不仅纸面成绩非常抗打,而且实际实操更是让人拍案叫绝。就在过去Claude 3.7发布后,全世界的用户用Claude 3.7制作了太多不可思议的作品,已经忍不住想要和大家分享一下Claude 3.7到底有多强了。比如Padphone 老师用做的卡片交互,每个组件和卡片都有视觉效果,太厉害了!,时长00:17仅需输入一张参考图,就能生成如此精美的效果,实在是牛!甚至有用户使用Claude 3.7制作了一个3D城市,可以看到夜晚和白天的交替。,时长00:58。
2025-04-03 15:23:32
2003
原创 2025年国产AI编码助手及国内首款AI原生IDE TRAE
一、工具功能与适用场景对比二、新手需求分析三、推荐工具与理由次选工具:阿里巴巴 通义灵码特殊场景推荐:科大讯飞 开发助手不推荐工具:清华大学 智普四、学习路径建议根据个人需求和学习目标选择合适的工具,逐步从简单到复杂,循序渐进地提升编程能力。五、补充1.功能特点适用场景未优先推荐的原因功能特点适用场景未优先推荐的原因对于新手来说,可以在掌握基础编程技能后,逐步尝试这些更高级的工具,以应对复杂的开发需求。
2025-04-02 10:44:22
1224
原创 DeepSeek入门及本地部署详细指南
Ollama 是一款用于本地运行大语言模型的工具,支持对 LLM 模型进行管理、训练和推理。通过 Ollama,用户可以在本地机器上运行 GPT-4、BERT 等模型,并利用 Ollama 提供的 Web 界面或客户端 API 进行交互。此外,Ollama 还提供了便捷的 Python 和 Java API,让开发者能够轻松地将其集成到各类应用中。通过 Ollama,我们可以方便地在本地运行和管理大语言模型,并且通过 WebUI 或 Python/Java API 与模型进行交互。
2025-02-08 16:07:36
2060
原创 Kotlin DSL Gradle 指南
继承 DefaultTask,Action 的方法需要添加 @TaskAction 注解。注册自定义的 Task然后我们就可以在 AndroidStudio 的 Gradle 工具面板,Tasks -> other 里找到这个 Task,双击执行即可。如果是带构造函数传参的话,可以这样使用 @Inject 注解可以帮助 Gradle 正确地理解带参数的构造函数,并且在创建任务实例时能够正确地调用带参数的构造函数。
2024-11-26 14:24:02
2077
原创 Android—统一依赖版本管理
该文件分了四个板块,[versions],[libraries],[bundles],[plugins],bundles的作用是将libraries中你觉得可以绑定到一起的引用绑定到一块,在build.gradle中引用时,只引用bundle的值就行,相当于一次引用多个libraries。引用后的build.gradle文件,可以对照前面的Kotlin DSL,所有的版本号和依赖都引用了libs.versions.toml,以此进行统一管理。优点就是可以动态定义版本名称等。二.config.gradle。
2024-11-13 15:55:11
1174
原创 多项目共享gradle依赖管理
gradle官方文档介绍运行 Gradle 时会检查项目中是否存在一个名为 buildSrc 的目录。然后 Gradle 会自动编译并测试这段代码,并将其放入构建脚本的类路径中, 对于多项目构建,只能有一个 buildSrc 目录,该目录必须位于根项目目录中, buildSrc 是 Gradle 项目根目录下的一个目录,它可以包含我们的构建逻辑,与脚本插件相比,buildSrc 应该是首选,因为它更易于维护、重构和测试代码Gradle 官网的描述。
2023-12-21 10:57:38
2262
原创 超级详细的mysql数据库安装指南
如果你的电脑是mac,参考如果你的电脑是windows,参考下面的安装步骤。进入MySQL官方网站(),按下图顺序点击“进入下载页面在下载页面拉到最下面会看到下图中的安装软件MSI Installer注意有两个,这两个有什么区别呢?第一个(大小是2.3M)是联网在线安装,会在线下载安装包。第二个(大小是435.7M)是离线安装,这里我们选第二个(上图红框的那个,已经同时包含了32位和64位安装包),下载到本地进行安装。点击“Downloda”进入下载页面。
2023-10-20 14:26:51
75
原创 HermesEventBus-饿了么开源的Android跨进程事件分发框架
在介绍HermesEventBus之前先简单介绍一下它底层依赖的库Hermes—-同样是由饿了么Android资深工程师赵立飞操刀的一套新颖巧妙易用的Android进程间通信IPC框架,开发Hermes的初衷是为了解决插件化框架DroidPlugin的主从进程通信困难的问题,最后实现的效果是将进程间通信变的像调用本地函数一样方便简单,并且支持进程间函数回调和垃圾回收。Hermes-EventBus是一个基于EventBus的、能在进程间发送和接收event的库,在IPC或者插件开发中非常有用。
2023-10-10 13:46:21
34
原创 怎么更好地使用RecyclerView?
源码的人都知道,这部分的代码是同步操作,并且涉及到大量的文件IO的操作以及锁操作,通常来说这部分的代码快的也需要几毫秒,慢的可能需要几十毫秒乃至上百毫秒也是很有可能的。类型我选择的是LinkedList,因为我们的缓存需要频繁的添加和删除操作,并且LinkedList实现了Deque接口,具备先入先出的能力。其实对于这一段事务真空的时间窗口,我们可以提前进行列表的ItemView的加载,这样等数据请求下来刷新列表的时候,我们。可以修改的情况下,如果我们使用的列表布局是第三方已经提供好的呢?
2023-10-10 10:10:50
18
原创 Json串key按照字典顺序拼接(对于待签名字符串拼写规则)
重放攻击,web漏洞中称会话重放漏洞,又称重播攻击、回放攻击指的是 先截取主机A发送给主机B的报文,入侵这把A请求B的报文原封不动地再发送一次,两次...n次,使主机B误以为入侵者就是主机A,然后进入到正常逻辑中并返回响应。如果是付款接口,或者购买接口就会造成损失,因此需要采用防重放的机制来做请求验证,如请求参数上加上timestamp时间戳+nonce随机数(下面有讲)。Token是什么?token即访问令牌access token用于接口中标识接口调用者的身份、凭证,减少用户名和密码的传输次数。
2023-06-17 14:01:07
34
原创 Android多进程:生成多进程(android:process属性)
ShareUserId,在Android里面每个app都有一个唯一的linux user ID,则这样权限就被设置成该应用程序的文件只对该用户可见,只对该应用程序自身可见,而我们可以使他们对其他的应用程序可见,这会使我们用到SharedUserId,也就是让两个apk使用相同的userID,这样它们就可以看到对方的文件。例如,如果进程 A 中的内容提供程序为进程 B 中的客户端提供服务,或者如果进程 A 中的服务绑定到进程 B 中的组件,则进程 A 始终被视为至少与进程 B 同样重要。
2022-09-22 17:13:25
1631
原创 Jetpack之App Startup的使用和不足,及改进版Android-Startup
2020 年 10 月 28 日,JetPack | App Startup 1.0.0终于迎来正式发布.目录前置知识这篇文章的内容会涉及以下前置 / 相关知识,贴心的我都帮你准备好了,请享用~ContentProvider 组件解析: Android | ContentProvider 的工作过程1. 为什么要使用 App Startup?这一节,我们来讨论为什么要使用 App Startup ,也就是 App Startup 解决了什么问题。基于 Content..
2022-04-08 10:54:40
1217
原创 Jetpack之使用 Jetpack Compose 更快地打造更出色的应用
纵观Android发展至今,十余年间Google一直在针对不同的主题对它进行整改补强,其目的就是为了给使用者提供一个更加稳定安全高效的系统,当然也给开发者们提供着一个日趋完善更加舒适高效的开发平台,更好地去实现各种功能!可以看到在 UI 构建方面,基本上这么多年依赖并没有什么变化,就现在的发展趋势来说,传统的UI架构让很多开发者表示苦不堪言:UI 在构建上需要编写大量的模板代码。大家都对自定义 View 比较熟悉,每次编写都要处理 onMeasure、onLayout、onDraw,在 on
2022-01-04 17:25:15
2103
3
原创 网易新闻 QUIC 敏捷实践
通过敏捷快速实践 QUIC ,网易新闻在3个月内,将端内 QUIC 请求占比提升到 75%+,如 图1 所示,并将客户端请求平均响应时间 RT 降低了 45%,请求错误率降低了 50%+,视频卡顿率降低了 25%+。图1 客户端 QUIC 请求占比(黄色部分为 QUIC 请求,蓝色部分为其他协议请求)如何做到以最小的成本、最小的风险和最大的收益接入 QUIC,是本文讨论的核心。什么是QUIC?QUIC 是 Quick UDP Internet Connections 的缩写,意为“快
2021-12-06 10:26:34
2985
原创 阿里淘系自研标准化协议库 XQUIC
XQUIC 是阿里巴巴淘系架构团队自研的 IETF QUIC 标准化协议库实现,在手机淘宝上进行了广泛的应用,并在多个不同类型的业务场景下取得明显的效果提升。XQUIC 为手机淘宝 APP 的用户带来丝般顺滑的网络体验:在 RPC 请求场景,网络耗时降低 15% ;在直播高峰期场景,卡顿率降低 30%、秒开率提升 2% ;在短视频场景,卡顿率降低 20% 。从以上提升效果可以看出,对 QUIC 的一个常见认知谬误:“QUIC 只对弱网场景有优化提升”是不准确的。实际上,QUIC
2021-12-03 16:47:20
1266
3
原创 安卓轻量级高效存储数据库MMKV
MMKV 由来在微信客户端的日常运营中,时不时就会爆发特殊文字引起系统的 crash,参考文章,文章里面设计的技术方案是在关键代码前后进行计数器的加减,通过检查计数器的异常,来发现引起闪退的异常文字。在会话列表、会话界面等有大量 cell 的地方,希望新加的计时器不会影响滑动性能;另外这些计数器还要永久存储下来——因为闪退随时可能发生。这就需要一个性能非常高的通用 key-value 存储组件,我们考察了 SharedPreferences、NSUserDefaults、SQLite 等常见组件,...
2021-09-16 15:28:18
437
原创 Modbus在Android上的应用
简介Modbus由MODICON公司于1979年开发,是一种工业现场总线协议标准。1996年施耐德公司推出基于以太网TCP/IP的Modbus协议:ModbusTCP。Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。标准的Modbus协议物理层接口有RS232、RS422、RS485和以太网接口,采用master/slave方式通信。ModbusTCP数据帧ModbusTCP的数据帧可分为两部分:MBAP+PDU。报文头MBAPMBAP为报文
2021-07-19 10:53:09
2154
原创 详细比对:鸿蒙与安卓到底有什么区别?鸿蒙开发从这里开始
HarmonyOS 是新一代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统一的语言。带来简洁,流畅,连续,安全可靠的全场景交互体验。华为鸿蒙系统(英文:huaweiHarmonyOS,HongmengOS)。在2019年8月9日,华为在东莞举行华为开发者大会,正式发布操作系统鸿蒙OS。系统定位HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平..
2021-06-25 11:54:43
12627
1
原创 JetPack之ViewModel
一、ViewModel简介ViewModel类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel类让数据可在发生屏幕旋转等配置更改后继续留存。Android 框架可以管理界面控制器(如 Activity 和 Fragment)的生命周期。Android 框架可能会决定销毁或重新创建界面控制器,以响应完全不受您控制的某些用户操作或设备事件。如果系统销毁或重新创建界面控制器,则存储在其中的任何瞬态界面相关数据都会丢失。例如,应用可能会在它的某个 Activity 中包含用户列表..
2021-01-26 16:04:20
339
原创 JetPack之使用LiveData
一、LiveData简介LiveData是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。如果观察者(由Observer类表示)的生命周期处于STARTED或RESUMED状态,则 LiveData 会认为该观察者处于活跃状态。LiveData 只会将更新通知给活跃的观察...
2021-01-26 09:22:22
369
原创 JetPack之使用 Room 将数据保存到本地数据库
一、ROOM简介Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。处理大量结构化数据的应用可极大地受益于在本地保留这些数据。最常见的用例是缓存相关数据。这样,当设备无法访问网络时,用户仍可在离线状态下浏览相应内容。设备重新连接到网络后,用户发起的所有内容更改都会同步到服务器。由于 Room 负责为您处理这些问题,因此我们强烈建议您使用 Room(而不是 SQLite)。二、添加ROOM库依赖1) KOTLIN:.
2021-01-25 14:39:38
487
原创 使用 Jetpack DataStore 进行数据存储
Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和流程以异步、一致的事务方式存储数据。如果您当前使用SharedPreferences存储数据,请考虑迁移到 DataStore。注意:如果您需要支持大型或复杂数据集、部分更新或参照完整性,请考虑使用Room,而不是 DataStore。DataStore 非常适合简单的小型数据集,不支持部分更新或参照完整性。Preferences DataS...
2021-01-22 14:47:22
524
原创 Android Kotlin开发之类详解
类(class)详解在任何一门面向对象编程的语言里,类(class)是非常基础、但也是非常重要的一项组成,通俗的说就是万般皆对象,而所说的对象就是我们生成的类。Kotlin也是如此,下面详细为大家介绍Kotlin中的类的组成结构、函数、声明等。一、类的声明1、关键字声明类的关键字为class2、声明格式class Test{ // 属性... ... // 构造函数 ... // 函数 ... // 内部类 .
2020-11-11 17:14:05
967
原创 Android Kotlin开发之基础语法概览
变量、常量、注释在Kotlin中的变量、常量以及注释多多少少和Java语言是有着不同之处的。不管是变量、常量的定义方式,还是注释的使用。下面详细的介绍Kotlin中的变量、常量、注释的使用。一、Kotlin之变量用法kotlin变量的声明方式与Java中声明变量有很大的区别,而且必须使用var或val关键字。其中:var: 用此关键字声明的变量表示可变变量,即可读且可写。相当于Java中普通变量 val: 用此关键字声明的变量表示不可变变量,即可读且不可写。相当于Java中用f.
2020-11-11 15:13:46
425
原创 Android Kotlin开发之使用object和companion object
Java中修饰静态方法,使用关键字static,例如:class Util { public static String getCurrentVersion() { return BuildConfig.VERSION_NAME; }}调用:Stringversion_name = Util.getCurrentVersion();Kotlin语言中使用"object"修饰静态类,被修饰的类,可以使用类名.方法名的形式调用,如下:object Ut.
2020-11-11 09:36:53
2812
原创 Android Kotlin开发之 协程
Android 上的 Kotlin 协程目录 功能 示例概览 依赖项信息 在后台线程中执行 使用协程确保主线程安全 处理异常 其他协程资源 协程是一种并发设计模式,您可以在 Android 平台上使用它来简化异步执行的代码。协程是在版本 1.3 中添加到 Kotlin 的,它基于来自其他语言的既定概念。在 Android 上,协程有助于管理长时间运行的任务,如果管理不当,这些任务可能会阻塞主线程并导致应用无响应。使用协程的专业开发者中有超过 50% 的人反映使用协程提高了工作效率.
2020-11-03 14:49:57
556
原创 Android Kotlin开发之Android KTX
Android KTX |Android Jetpack 的一部分。Android KTX 是包含在 Android Jetpack 及其他 Android 库中的一组 Kotlin 扩展程序。KTX 扩展程序可以为 Jetpack、Android 平台及其他 API 提供简洁的惯用 Kotlin 代码。为此,这些扩展程序利用了多种 Kotlin 语言功能,其中包括:扩展函数 扩展属性 Lambda 命名参数 参数默认值 协程例如,使用 SharedPreferences 时,您必须先创
2020-11-03 14:07:16
3509
2
原创 在Android开发中采用Kotlin
在 2019 年 Google I/O 大会上,谷歌宣布今后将越来越优先采用 Kotlin 进行 Android 开发。Kotlin 是一种富有表现力且简洁的编程语言,不仅可以减少常见代码错误,还可以轻松集成到现有应用中。如果您想构建 Android 应用,建议您从 Kotlin 开始着手,充分利用一流的 Kotlin 功能。为什么要优先使用 Kotlin 进行 Android 开发?下面介绍了开发者喜欢用 Kotlin 编写代码的原因:富有表现力且简洁:您可以使用更少的代码实现更多的功能。
2020-11-02 15:31:36
846
1
原创 PreferenceFragment的使用
PreferenceFragment简介在我们写一个项目的时候,基本都有选项设置界面,这类设置界面的原理基本都是本地的一些个性化设置,通过读取本地设置来改变某些差异显示(例如字体大小,主题颜色,WIFI自动下载等)。这些设置一般都会使用Preference来保存,Android专门为这种Activity提供了便捷的基类PreferenceActivity(如果是Fragment,使用PreferenceFragment,现在推荐使用v7包下的PreferenceFragmentCompat),这些类内
2020-10-09 14:09:46
860
原创 Android 11 正式发布 | 开发者们的舞台已就绪
Android 11 来了! Android 11 ,重点关注了三个主题:以人为本的沟通方式、让用户快速访问和灵活控制所有智能设备,以及让用户有更多方式控制设备上的数据如何共享的隐私安全。请阅读我们的官方博客了解详情。 Android 开源项目 https://source.android.google.cn/ Android 11 官方博客 http://blog.google/products/android/android-11 对于开发者来说,An...
2020-09-10 10:04:52
404
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人