Dapr is an open source, portable, event-driven runtime that helps developers build elastic, microservices, stateless, and stateful applications that run on the cloud and edge, and focus on business logic without thinking For distributed related problems, related problems can be handed over to Dapr to solve.
Version 1.7 was officially released on April 8, 2022. This is the seventh minor version update since the release of Dapr v1.0, which has a very large number of contributors. We would like to thank all 83 new and existing contributors who helped us complete this release. Many of the contents of this update are expected functions, such as: support for offline deployment, more mature Stable components, etc. Next, let's take a look at the updated contents.
Configure retries, timeouts and circuit breakers across Dapr APIs
I also wrote an article in this part: Dapr Resilience Strategy , Dapr 1.7.0 achieves the first phase goals. Distributed applications typically consist of many services, with dozens or even hundreds of instances for any given application. These applications do not exist in isolation, but rely on databases, caches, publish/subscribe, secret storage, and other infrastructure services many times over. With more dependencies, the possibility of system failure increases, for example: an instance may fail or become unresponsive due to hardware failure, slow database operation, high number of requests, application restart/scale out, or other reasons. Design and implement applications that are fault tolerant (the ability to detect, mitigate, and respond to failures) that can bring your application back to a healthy state and self-healing, and help protect against a range of failures, including infrastructure service failures .
Dapr provides the ability to define and apply fault-tolerant resiliency policies through resiliency specifications. The elastic specification is kept in the same location as the component specification and is applied when the Dapr sidecar starts. Sidecar determines how to apply elastic policies to your Dapr API calls. In a resiliency specification, you can define policies for popular resiliency patterns, such as:
- time out
- Retry
- breaker
Policies can then be consistently applied to targets, including:
- Applications invoked through services
- components
- Actors
Further enhancements in observability
To improve operational visibility, new metrics have been added to the component, including pub/sub, bindings, state storage, and more. E.g:
- Latency when using components
- the number of times a given component is called
The Dapr runtime logs events to standard output for diagnostic purposes, such as listing additional runtime information for components loaded at startup.
With this release, you can now:
- Turn on logging of API calls between the application and the Dapr sidecar
- See these calls in the output log
Component improvements
The following components have been upgraded to stable versions, especially the MQTT publish-subscribe component has entered a stable state, which provides a very good support for the adoption of edge computing:
- MQTT publish/subscribe
- RabbitMQ publish/subscribe
- Azure Blob storage binding
- Azure CosmosDB bindings
- Azure Service Bus queue bindings
In this release, 3 state components have been added, for a total of 22 state components.
- CockroachDB state storage component
- NATS JetStream State Storage Components
- Oracle Database State Storage Components
Added new functionality to existing components:
Influxdb bindings now support queries. In this release, there are now 97 components in total, including 41 bindings, 1 configuration, 8 HTTP middleware, 3 name resolution, 13 pub/sub, 8 secret stores, and 23 state stores.
Features moved from preview to stable
Some features moved from preview to stable after at least two versions were available and feedback and fixes were solicited. The following features in this release are now stable:
- Actor reentrancy
- gRPC proxy
- Automatic state store encryption, including adding new support for using 128-bit, 192-bit and 256-bit key sizes
CLI update
▌Kubernetes namespace support
The CLI commands components , configurations , and list support Kubernetes namespaces in the returned output
▌ Simplified certificate update
- The dapr mtls renew-certificate command was introduced to make it easier to troubleshoot root certificate expiration and renewal issues in clusters.
- -k Any CLI command using the Kubernetes option now raises a warning message if the root certificate expires in less than 30 days.
New way to install Dapr in self-hosted mode
▌Private and Alternate Image Registry (Preview)
In self-hosted mode, the CLI init command can now:
- Specify any private registry to extract the container image required to install Dapr.
- Provides the ability to choose a public Docker hub or Github repository. This enables you to:
Place the Image in a trusted repository of your choice.
Extracted from different public sources with Image limitations.
▌Offline installation (preview)
By default, Dapr downloads binaries and pulls images from the network to set up the development environment. With this release, Dapr now supports offline installations using pre-downloaded artifacts, whether using Docker or silm rings. Artifacts for each Dapr release are now built into the Dapr Installer Bundle, which can be downloaded from the repo: https://github.com/dapr/installer-bundle . Offline installation is possible by using this installer package with the Dapr CLI init command.
performance improvements
Unix Domain Sockets are now available on Kubernetes, you can now use Unix Domain Sockets with Kubernetes (and self-hosted) when calling the Dapr sidecar with the annotation dapr.io/unix-domain-socket-path, increasing throughput and Reduce latency.
If you are not familiar with Dapr, please click the button at the end of the article to go to the learning page .
Author of this article: Zhang Shanyou
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。